DocSpace-client/common/ASC.Api.Core/Middleware/ResponseWrapper.cs

28 lines
1013 B
C#
Raw Normal View History

2019-06-13 12:12:21 +00:00
using System.Net;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Filters;
2019-05-27 09:46:04 +00:00
2019-05-30 09:28:21 +00:00
namespace ASC.Api.Core.Middleware
2019-05-27 09:46:04 +00:00
{
2019-06-13 12:12:21 +00:00
public class CustomExceptionFilterAttribute : ExceptionFilterAttribute
2019-05-27 09:46:04 +00:00
{
2019-06-13 12:12:21 +00:00
public override void OnException(ExceptionContext context)
2019-05-27 09:46:04 +00:00
{
2019-06-13 12:12:21 +00:00
context.Result = new ObjectResult(new ErrorApiResponse((HttpStatusCode)context.HttpContext.Response.StatusCode, context.Exception));
2019-05-27 09:46:04 +00:00
}
2019-06-13 12:12:21 +00:00
}
2019-05-27 09:46:04 +00:00
2019-06-13 12:12:21 +00:00
public class CustomResponseFilterAttribute : ResultFilterAttribute
{
public override void OnResultExecuting(ResultExecutingContext context)
2019-05-27 09:46:04 +00:00
{
2019-06-13 12:12:21 +00:00
if (context.Result is ObjectResult result)
2019-05-30 09:28:21 +00:00
{
2019-07-29 10:51:14 +00:00
context.HttpContext.Items.TryGetValue("TotalCount", out var total);
result.Value = new SuccessApiResponse((HttpStatusCode)context.HttpContext.Response.StatusCode, result.Value, (long?)total);
2019-05-30 09:28:21 +00:00
}
2019-05-27 09:46:04 +00:00
2019-06-13 12:12:21 +00:00
base.OnResultExecuting(context);
2019-05-27 09:46:04 +00:00
}
}
}