public static void HandleError(this IApplicationBuilder app, LogProvider logger) { app.Run(async context => { var error = context.Features.Get <IExceptionHandlerFeature>(); if (error != null) { var ex = error.Error; if (ex is AppException) { switch (((AppException)ex).ExceptionType) { case ExceptionType.Authorization: await logger.CreateLog(context, ex, "auth"); break; case ExceptionType.Validation: break; default: await logger.CreateLog(context, ex); break; } await context.SendErrorResponse(ex); } else { await logger.CreateLog(context, ex); await context.SendErrorResponse(ex); } } }); }
public static void HandleError(this IApplicationBuilder app, LogProvider logger) { app.Run(async context => { var error = context.Features.Get <IExceptionHandlerFeature>(); if (error != null) { var ex = error.Error; await logger.CreateLog(context, ex); } context.Response.StatusCode = 500; context.Response.ContentType = "application/json"; if (error != null) { var ex = error.Error; await context.Response.WriteAsync(ex.GetExceptionChain(), Encoding.UTF8); } }); }