public async Task Invoke(HttpContext context, SystemLogsCreate systemLogsCreate, DataContext spudContext, ILoggingContext loggingDb, UserPermissionService userPermissionService) { try { await _next.Invoke(context); } catch (Exception ex) { systemLogsCreate.SetupService(spudContext, loggingDb, userPermissionService); await HandleExceptionAsync(context, ex, systemLogsCreate); } }
private async Task HandleExceptionAsync(HttpContext context, Exception exception, SystemLogsCreate systemLogsCreate) { await systemLogsCreate.SaveLog(Model.Enums.LogTypeEnum.UncaughtError, exception); var response = context.Response; response.ContentType = "application/json"; response.StatusCode = (int)System.Net.HttpStatusCode.InternalServerError; await response.WriteAsync(JsonConvert.SerializeObject(new { // customize as you need error = new { message = exception.Message, exception = exception.GetType().Name } })); }