/// <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() }))); }
/// <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)); }