diff --git a/ShareBook/ShareBook.Api/Middleware/ExceptionHandlerMiddleware.cs b/ShareBook/ShareBook.Api/Middleware/ExceptionHandlerMiddleware.cs index edbd5f41..d845ccea 100644 --- a/ShareBook/ShareBook.Api/Middleware/ExceptionHandlerMiddleware.cs +++ b/ShareBook/ShareBook.Api/Middleware/ExceptionHandlerMiddleware.cs @@ -3,6 +3,7 @@ using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Http; using Newtonsoft.Json; +using Newtonsoft.Json.Serialization; using Rollbar; using ShareBook.Api.Services; using ShareBook.Domain.Common; @@ -29,7 +30,7 @@ public async Task Invoke(HttpContext httpContext) { var result = new Result(); result.Messages.Add(ex.Message); - var jsonResponse = JsonConvert.SerializeObject(result); + var jsonResponse = ToJson(result); httpContext.Response.Clear(); httpContext.Response.StatusCode = (int)ex.ErrorType; @@ -50,7 +51,7 @@ public async Task Invoke(HttpContext httpContext) if (ex is AggregateException) result.Messages.Add(ex.InnerException.ToString()); - var jsonResponse = JsonConvert.SerializeObject(result); + var jsonResponse = ToJson(result); httpContext.Response.Clear(); httpContext.Response.StatusCode = StatusCodes.Status500InternalServerError; @@ -59,6 +60,22 @@ public async Task Invoke(HttpContext httpContext) } } + private string ToJson(Object obj) + { + DefaultContractResolver contractResolver = new DefaultContractResolver + { + NamingStrategy = new CamelCaseNamingStrategy() + }; + + string json = JsonConvert.SerializeObject(obj, new JsonSerializerSettings + { + ContractResolver = contractResolver, + Formatting = Formatting.Indented + }); + + return json; + } + private void SendErrorToRollbar(Exception ex) { object error = new