/// <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 ISingleModelResponse <TModel> response, string errorMessage, HttpStatusCode status) { response.IsError = true; response.ErrorMessage = errorMessage; return(new ObjectResult(response) { StatusCode = (Int32)status }); }
public static void Publish <TModel>(this Exception ex, ISingleModelResponse <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 }
public static HttpResponseMessage ToHttpResponse <TModel>(this ISingleModelResponse <TModel> singleModelResponse, HttpRequestMessage request) { var status = default(HttpStatusCode); if (singleModelResponse.DidError) { status = HttpStatusCode.InternalServerError; } else { status = singleModelResponse.Model == null ? HttpStatusCode.NotFound : HttpStatusCode.OK; } return(request.CreateResponse(status, singleModelResponse)); }
public static void SetError <TModel>(this ISingleModelResponse <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 ISingleModelResponse <TModel> response) { var status = HttpStatusCode.OK; if (response.DidError) { status = HttpStatusCode.InternalServerError; } else if (response.Model == null) { status = HttpStatusCode.NotFound; } return(new ObjectResult(response) { StatusCode = (Int32)status }); }
public static IActionResult ToHttpResponse <TModel>(this ISingleModelResponse <TModel> response) { var status = HttpStatusCode.OK; if (response.DidError) { status = HttpStatusCode.InternalServerError; } else if (response.Model == null) { status = HttpStatusCode.NotFound; } //https://docs.microsoft.com/en-us/aspnet/core/tutorials/web-api-vsc return(new ObjectResult(response) { StatusCode = (int)status }); }
public static IHttpActionResult ToHttpResponse <TModel>(this ISingleModelResponse <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 ISingleModelResponse <TModel> response, RestMethod methodType = RestMethod.GET) { var status = HttpStatusCode.OK; if (response.IsError) { status = HttpStatusCode.InternalServerError; } else if (response.Model == 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 void SetError <TModel>(this ISingleModelResponse <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.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 IActionResult ToHttpResponse <T>(this ISingleModelResponse <T> single) { return(new ObjectResult(single)); }