Esempio n. 1
0
 /// <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
     });
 }
Esempio n. 2
0
        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
        }
Esempio n. 3
0
        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));
        }
Esempio n. 4
0
        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;
            }
        }
Esempio n. 5
0
        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
            });
        }
Esempio n. 6
0
        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
            });
        }
Esempio n. 7
0
        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));
        }
Esempio n. 8
0
        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;
                }
            }
        }
Esempio n. 10
0
 public static IActionResult ToHttpResponse <T>(this ISingleModelResponse <T> single)
 {
     return(new ObjectResult(single));
 }