Beispiel #1
0
        /// <summary>
        /// The HandleExceptionAsync
        /// </summary>
        /// <param name="context">The context<see cref="HttpContext"/></param>
        /// <param name="exception">The exception<see cref="Exception"/></param>
        /// <returns>The <see cref="Task"/></returns>
        private Task HandleExceptionAsync(HttpContext context, Exception exception)
        {
            ScocuBaseModel basemodel = new ScocuBaseModel();
            HttpStatusCode code      = HttpStatusCode.InternalServerError;

            //if (exception is ScocuException)
            //{
            //    basemodel = JsonConvert.DeserializeObject<ScocuBaseModel>(exception.Message, new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() });
            //    code = ((ScocuException)exception).StatusCode;
            //}
            //else if (exception is DbUpdateException dbUpdateEx)
            //{
            //    if (dbUpdateEx.InnerException != null && dbUpdateEx.InnerException is SqlException sqlException)
            //    {
            //        if (sqlException.Number == 2601 || sqlException.Number == 2627)
            //        {
            //            code = HttpStatusCode.Conflict;
            //            basemodel = new ScocuBaseModel { Status = "error", Errors = new List<Error> { new Error { Code = "409", Message = "Cannot insert duplicate values." } } };
            //        }
            //        else
            //        {
            //            code = HttpStatusCode.InternalServerError;
            //            basemodel = new ScocuBaseModel { Status = "error", Errors = new List<Error> { new Error { Code = "500", Message = sqlException.Message } } };
            //        }
            //    }
            //    else
            //    {
            //        code = HttpStatusCode.InternalServerError;
            //        basemodel = new ScocuBaseModel { Status = "error", Errors = new List<Error> { new Error { Code = "500", Message = dbUpdateEx.Message } } };
            //    }
            //}
            //else
            //{
            //    code = HttpStatusCode.InternalServerError; // 500 if unexpected
            //    basemodel = new ScocuBaseModel { Status = "error", Errors = new List<Error> { new Error { Code = "500", Message = exception.Message } } };

            //}
            code      = HttpStatusCode.InternalServerError; // 500 if unexpected
            basemodel = new ScocuBaseModel {
                Status = "error", Errors = new List <Error> {
                    new Error {
                        Code = "500", Message = exception.Message
                    }
                }
            };
            context.Response.ContentType = "application/json";

            context.Response.StatusCode = (int)code;
            return(context.Response.WriteAsync(JsonConvert.SerializeObject(basemodel, new JsonSerializerSettings {
                ContractResolver = new CamelCasePropertyNamesContractResolver()
            })));
        }
Beispiel #2
0
        /// <summary>
        /// The HandleExceptionAsync
        /// </summary>
        /// <param name="context">The context<see cref="HttpContext"/></param>
        /// <param name="exception">The exception<see cref="string"/></param>
        /// <param name="code">The code<see cref="int"/></param>
        /// <returns>The <see cref="Task"/></returns>
        private Task HandleExceptionAsync(HttpContext context, string exception, int code)
        {
            ScocuBaseModel basemodel = new ScocuBaseModel();

            basemodel = new ScocuBaseModel {
                Status = "error", Errors = new List <Error> {
                    new Error {
                        Code = code.ToString(), Message = exception
                    }
                }
            };
            context.Response.ContentType = "application/json";
            context.Response.StatusCode  = code;
            string error = JsonConvert.SerializeObject(basemodel, new JsonSerializerSettings {
                ContractResolver = new CamelCasePropertyNamesContractResolver()
            });

            _logger.LogError(error);
            return(context.Response.WriteAsync(error));
        }