5b40cf6fb0
* Added language support api * Added canRead canWrite to functions Access api
49 lines
1.5 KiB
C#
49 lines
1.5 KiB
C#
using System;
|
|
using System.Net;
|
|
using System.Net.Http;
|
|
using System.Net.Http.Formatting;
|
|
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
using System.Web.Http;
|
|
using System.Web.Http.ExceptionHandling;
|
|
using System.Web.Http.Filters;
|
|
using static Step.Utils.ExceptionManager;
|
|
|
|
namespace Step
|
|
{
|
|
public class WebApiUnhandledExceptionHandler : ExceptionHandler
|
|
{
|
|
public override void Handle(ExceptionHandlerContext context)
|
|
{
|
|
context.Result = new TextPlainErrorResult
|
|
{
|
|
Request = context.ExceptionContext.Request,
|
|
Exception = context.Exception,
|
|
HttpStatusCode = HttpStatusCode.InternalServerError
|
|
};
|
|
}
|
|
|
|
private class TextPlainErrorResult : IHttpActionResult
|
|
{
|
|
public HttpRequestMessage Request { get; set; }
|
|
|
|
public Exception Exception { get; set; }
|
|
|
|
public HttpStatusCode HttpStatusCode { get; set; }
|
|
|
|
public Task<HttpResponseMessage> ExecuteAsync(CancellationToken cancellationToken)
|
|
{
|
|
HttpError error = new HttpError(Exception, true);
|
|
HttpResponseMessage response = new HttpResponseMessage()
|
|
{
|
|
Content = new ObjectContent<HttpError>(error, new JsonMediaTypeFormatter()),
|
|
StatusCode = HttpStatusCode,
|
|
RequestMessage = Request
|
|
};
|
|
|
|
return Task.FromResult(response);
|
|
}
|
|
}
|
|
}
|
|
}
|