private static Task WriteErrorAsync(FailExecutionResult result, HttpContext context) { var stringResult = JsonConvert.SerializeObject(result.Value, new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver(), Formatting = Formatting.Indented, NullValueHandling = NullValueHandling.Include, ReferenceLoopHandling = ReferenceLoopHandling.Ignore }); context.Response.ContentType = "application/json"; context.Response.StatusCode = result.StatusCode ?? 500; return(context.Response.WriteAsync(stringResult)); }
private static Task Handle(string title, string message, HttpStatusCode code, HttpContext context, Exception ex, IUnitOfWork uow, bool isProduction) { if (uow.HasOpenTransaction) { uow.RollbackTransactionAsync(); } var errors = new List <Error>() { new Error(title, message) }; if (!isProduction) { errors.AddRange(ex.ToApiError()); } var result = new FailExecutionResult(code, errors.ToArray()); return(WriteErrorAsync(result, context)); }