Merge branch 'develop' into feature/11.5.2

This commit is contained in:
pavelbannov 2021-05-31 18:13:08 +03:00
commit 4cabbb7d52
3 changed files with 32 additions and 7 deletions

View File

@ -31,10 +31,10 @@ namespace ASC.Api.Core.Middleware
{
public CommonApiError Error { get; set; }
protected internal ErrorApiResponse(HttpStatusCode statusCode, Exception error) : base(statusCode)
protected internal ErrorApiResponse(HttpStatusCode statusCode, Exception error, string message = null) : base(statusCode)
{
Status = 1;
Error = CommonApiError.FromException(error);
Error = CommonApiError.FromException(error, message);
}
}
@ -88,11 +88,11 @@ namespace ASC.Api.Core.Middleware
public int Hresult { get; set; }
public static CommonApiError FromException(Exception exception)
public static CommonApiError FromException(Exception exception, string message = null)
{
return new CommonApiError()
{
Message = exception.Message,
Message = message ?? exception.Message,
Type = exception.GetType().ToString(),
Stack = exception.StackTrace,
Hresult = exception.HResult

View File

@ -1,4 +1,8 @@
using System.Net;
using System;
using System.Net;
using System.Security;
using ASC.Common.Web;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Filters;
@ -10,12 +14,33 @@ namespace ASC.Api.Core.Middleware
public override void OnException(ExceptionContext context)
{
var status = (HttpStatusCode)context.HttpContext.Response.StatusCode;
string message = null;
if (status == HttpStatusCode.OK)
{
status = HttpStatusCode.InternalServerError;
}
var result = new ObjectResult(new ErrorApiResponse(status, context.Exception))
switch (context.Exception)
{
case ItemNotFoundException:
status = HttpStatusCode.NotFound;
message = "The record could not be found";
break;
case ArgumentException:
status = HttpStatusCode.BadRequest;
message = "Invalid arguments";
break;
case SecurityException:
status = HttpStatusCode.Forbidden;
message = "Access denied";
break;
case InvalidOperationException:
status = HttpStatusCode.Forbidden;
break;
}
var result = new ObjectResult(new ErrorApiResponse(status, context.Exception, message))
{
StatusCode = (int)status
};

View File

@ -1156,7 +1156,7 @@ namespace ASC.Web.Files.Services.WCFService
if (!result.Any())
{
MarkAsRead(new List<JsonElement>() { JsonDocument.Parse(folderId.ToString()).RootElement }, new List<JsonElement>() { }); //TODO
MarkAsRead(new List<JsonElement>() { JsonDocument.Parse(JsonSerializer.Serialize(folderId)).RootElement }, new List<JsonElement>() { }); //TODO
}