public static void SetError <TModel>(this IListModelResponse <TModel> response, Exception ex, ILogger logger) { response.DidError = true; var cast = ex as DbException; if (cast == null) { response.ErrorMessage.Add("There was an internal error, please contact to technical support."); logger?.LogCritical(ex.ToString()); } else { // response.ErrorMessage = null ?? new List<string>(); response.ErrorMessage.Add(ex.Message); logger?.LogError(ex.Message); var Inner = ex.InnerException; while (Inner != null) { response.ErrorMessage.Add(Inner.Message); logger?.LogError(Inner.Message); Inner = Inner.InnerException; } } }
public static void Publish <TModel>(this Exception ex, IListModelResponse <TModel> response) { response.DidError = true; response.ErrorMessage = ex.Message; // todo: Add code to save exception in log file // todo: Add code to save exception in database // todo: Add code to send an email if exception is critical }
/// <summary> /// /// </summary> /// <typeparam name="TModel"></typeparam> /// <param name="response"></param> /// <param name="errorMessage"></param> /// <param name="status"></param> /// <returns></returns> public static IActionResult ToErrorResponse <TModel>(this IListModelResponse <TModel> response, string errorMessage, HttpStatusCode status) { response.PageSize = 0; response.PageNumber = 0; response.IsError = true; response.ErrorMessage = errorMessage; return(new ObjectResult(response) { StatusCode = (Int32)status }); }
public static IActionResult ToHttpResponse <TModel>(this IListModelResponse <TModel> response) { var status = HttpStatusCode.OK; if (response.DidError) { status = HttpStatusCode.InternalServerError; } else if (response.Model == null) { status = HttpStatusCode.NoContent; } return(new ObjectResult(response) { StatusCode = (Int32)status }); }
public static void SetError <TModel>(this IListModelResponse <TModel> response, Exception ex, ILogger logger) { response.DidError = true; var cast = ex as StoreException; if (cast == null) { response.ErrorMessage = "There was an internal error, please contact to technical support."; logger.LogError(ex.ToString()); } else { response.ErrorMessage = ex.Message; } }
public static IActionResult ToHttpResponse <TModel>(this IListModelResponse <TModel> response) { //https://stackoverflow.com/questions/38630076/asp-net-core-web-api-exception-handling var status = HttpStatusCode.OK; if (response.DidError) { status = HttpStatusCode.InternalServerError; } else if (response.Model == null) { status = HttpStatusCode.NoContent; } return(new ObjectResult(response) { StatusCode = (int)status }); }
public static IHttpActionResult ToHttpResponse <TModel>(this IListModelResponse <TModel> response, HttpRequestMessage request) { var status = HttpStatusCode.OK; if (response.DidError) { status = HttpStatusCode.InternalServerError; } else if (response.Model == null) { status = HttpStatusCode.NoContent; } JsonSerializerSettings settings = GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings; var result = new HttpResponseMessage(status) { RequestMessage = request, Content = new StringContent(JsonConvert.SerializeObject(response, settings)) }; return(new JsonHttpActionResult(result)); }
public static IActionResult ToHttpResponse <TModel>(this IListModelResponse <TModel> response, RestMethod methodType = RestMethod.GET) { var status = HttpStatusCode.OK; if (response.IsError) { status = HttpStatusCode.InternalServerError; } else if (response.Model == null && response.ShapeModel == null) { status = HttpStatusCode.NotFound; } else if (methodType.Equals(RestMethod.PUT) || methodType.Equals(RestMethod.DELETE)) { status = HttpStatusCode.NoContent; } return(new ObjectResult(response) { StatusCode = (Int32)status }); }
public static IActionResult ToHttpResponse <T>(this IListModelResponse <T> list) { return(new ObjectResult(list)); }