Files
cms_thermo_active/Step/WebApiUnhandledExceptionHandler.cs
T
Lucio Maranta 5b40cf6fb0 * Fix Web api exception manager
* Added language support api
* Added canRead canWrite to functions Access api
2017-12-28 16:36:48 +01:00

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);
}
}
}
}