public void OnException(ExceptionContext context) { logger.LogError(new EventId(context.Exception.HResult), context.Exception, context.Exception.Message); var json = new JsonErrorResponse { Messages = new[] { "An error occurred." } }; if (env.IsDevelopment()) { json.DeveloperMeesage = context.Exception; } context.Result = new ObjectResult(json); context.HttpContext.Response.StatusCode = (int)HttpStatusCode.InternalServerError; context.ExceptionHandled = true; }
public void OnException(ExceptionContext context) { var source = context.Exception.Source; var message = $"{TraverseException(context.Exception)} occured in {source}"; var stackTrace = context.Exception.StackTrace; _logger.LogError(new EventId(context.Exception.HResult), context.Exception, "Exception throw in {ServiceName} : {message}", ServiceName, message); var jsonErrorResponse = new JsonErrorResponse { //Messages = new[] {context.Exception.Message} Messages = new[] { message }, Source = source, StackTrace = stackTrace }; // Fetch the exception var exceptionType = context.Exception.GetType(); if (exceptionType == typeof(UnauthorizedAccessException)) { context.Result = new UnauthorizedResult(); context.HttpContext.Response.StatusCode = (int)HttpStatusCode.Unauthorized; context.HttpContext.Features.Get <IHttpResponseFeature>().ReasonPhrase = ServiceName; //message = "Unauthorized Access"; //status = HttpStatusCode.Unauthorized; } else if (exceptionType == typeof(ForbidResult)) { context.Result = new ForbidResult(message); context.HttpContext.Response.StatusCode = (int)HttpStatusCode.Forbidden; context.HttpContext.Features.Get <IHttpResponseFeature>().ReasonPhrase = ServiceName; } else { // Returns response, but not picked up caller context.Result = new BadRequestObjectResult(jsonErrorResponse); context.HttpContext.Response.StatusCode = (int)HttpStatusCode.BadRequest; context.HttpContext.Features.Get <IHttpResponseFeature>().ReasonPhrase = message; } }
public void OnException(ExceptionContext context) { logger.LogError(new EventId(context.Exception.HResult), context.Exception, context.Exception.Message); TrataErro ObjTrataErros = new TrataErro(); // Envio da excecao. ObjTrataErros.Main(context.Exception); if (context.Exception.GetType() == typeof(UsuarioDomainExceptions)) { var problemDetails = new ValidationProblemDetails() { Instance = context.HttpContext.Request.Path, Status = StatusCodes.Status400BadRequest, Detail = "Please refer to the errors property for additional details." }; problemDetails.Errors.Add("DomainValidations", new string[] { context.Exception.Message.ToString() }); context.Result = new BadRequestObjectResult(problemDetails); context.HttpContext.Response.StatusCode = (int)HttpStatusCode.BadRequest; } else { var json = new JsonErrorResponse { Messages = new[] { "An error ocurred." } }; if (env.IsDevelopment()) { json.DeveloperMeesage = context.Exception; } context.Result = new InternalServerErrorObjectResult(json); context.HttpContext.Response.StatusCode = (int)HttpStatusCode.InternalServerError; } context.ExceptionHandled = true; }
public void OnException(ExceptionContext context) { logger.LogError(new EventId(context.Exception.HResult), context.Exception, context.Exception.Message); if (context.Exception.GetType() == typeof(DomainException) || context.Exception.GetType().BaseType == typeof(DomainException)) { string errorCode = "DomainValidations"; string errorMessage = context.Exception.Message.ToString(); if (context.Exception.GetType().IsSubclassOf(typeof(Common.Exceptions.ExceptionBase))) { errorCode = ((Common.Exceptions.ExceptionBase)context.Exception).Code; } var problemDetails = new ValidationProblemDetails() { Instance = context.HttpContext.Request.Path, Status = StatusCodes.Status400BadRequest, Detail = "Please refer to the errors property for additional details." }; problemDetails.Errors.Add(errorCode, new string[] { errorMessage }); context.Result = new BadRequestObjectResult(problemDetails); context.HttpContext.Response.StatusCode = (int)HttpStatusCode.BadRequest; } else { var json = new JsonErrorResponse { Messages = new[] { "An error ocurred." } }; if (env.IsDevelopment()) { json.DeveloperMessage = context.Exception; } context.Result = new InternalServerErrorObjectResult(json); context.HttpContext.Response.StatusCode = (int)HttpStatusCode.InternalServerError; } context.ExceptionHandled = true; }
public async Task <IActionResult> Create([FromBody] JObject jsonObject) { var requestId = Guid.NewGuid().ToString(); _logger.LogInformation($"RequestID:{requestId} - Permission_Create called."); try { if (jsonObject == null) { _logger.LogError($"RequestID:{requestId} - Permission_Create error: null"); var errorResponse = JsonErrorResponse.BadRequest($"Permission_Create error: null", requestId); return(BadRequest(errorResponse)); } var modelObject = JsonConvert.DeserializeObject <PermissionModel>(jsonObject.ToString(), new JsonSerializerSettings { MissingMemberHandling = MissingMemberHandling.Ignore, NullValueHandling = NullValueHandling.Ignore }); //TODO: P2 Refactor into Guard if (String.IsNullOrEmpty(modelObject.Name)) { _logger.LogError($"RequestID:{requestId} - Permission_Create error: invalid name"); var errorResponse = JsonErrorResponse.BadRequest($"Permission_Create error: invalid name", requestId); return(BadRequest(errorResponse)); } JObject result = await _permissionService.CreateItemAsync(modelObject, requestId); return(new CreatedResult(result.SelectToken("id").ToString(), null)); } catch (Exception ex) { _logger.LogError($"RequestID:{requestId} Permission_Create error: {ex.Message}"); var errorResponse = JsonErrorResponse.BadRequest($"Permission_Create error: {ex} ", requestId); return(BadRequest(errorResponse)); } }
public void OnException(ExceptionContext context) { if (context.Exception.GetType() == typeof(TopicDomainNotFoundException)) { var json = new JsonErrorResponse { Messages = new[] { context.Exception.Message } }; context.Result = new NotFoundObjectResult(json); context.HttpContext.Response.StatusCode = StatusCodes.Status404NotFound; } else if (context.Exception is TopicDomainInvalidOperationException) { var json = new JsonErrorResponse { Messages = new[] { "An unexpected error occurred. Try it again." } }; if (_env.IsDevelopment()) { json.DeveloperMessage = context.Exception.ToString(); } context.Result = new BadRequestObjectResult(json); context.HttpContext.Response.StatusCode = StatusCodes.Status400BadRequest; } else { var json = new JsonErrorResponse { Messages = new[] { "An unexpected error occurred. Try it again." } }; if (_env.IsDevelopment()) { json.DeveloperMessage = context.Exception.ToString(); } context.Result = new InternalServerErrorResult(json); context.HttpContext.Response.StatusCode = StatusCodes.Status500InternalServerError; } context.ExceptionHandled = true; }
public void OnException(ExceptionContext context) { logger.LogError(new EventId(context.Exception.HResult), context.Exception, context.Exception.Message); if (context.Exception.GetType() == typeof(SampleDomainException)) { var json = new JsonErrorResponse { Messages = context.Exception.Message }; // Result asigned to a result object but in destiny the response is empty. This is a known bug of .net core 1.1 //It will be fixed in .net core 1.1.2. See https://github.com/aspnet/Mvc/issues/5594 for more information context.Result = new BadRequestObjectResult(json); context.HttpContext.Response.StatusCode = (int)HttpStatusCode.BadRequest; } else { var json = new JsonErrorResponse { Messages = "An error occured!" }; if (env.IsDevelopment()) { //json.DeveloperMessage = context.Exception; json.StackTrace = new { Message = context.Exception.Message, Trace = context.Exception.StackTrace.Split(new[] { Environment.NewLine }, StringSplitOptions.None) }; } // Result asigned to a result object but in destiny the response is empty. This is a known bug of .net core 1.1 // It will be fixed in .net core 1.1.2. See https://github.com/aspnet/Mvc/issues/5594 for more information context.Result = new InternalServerErrorObjectResult(json); context.HttpContext.Response.StatusCode = (int)HttpStatusCode.InternalServerError; } context.ExceptionHandled = true; }
public async Task <ActionResult <NodeDto> > GetNodeById( [FromRoute] string clientId, CancellationToken cancellationToken) { try { var node = await this.nodeService.GetNodeById(clientId, cancellationToken); var data = this.mapper.Map <NodeDto>(node); var response = new JsonOkResponse <NodeDto>(data); return(Ok(response)); } catch (Exception e) { var message = $"An error accured when fetching AllNodes."; var errors = LogError(e, message); var response = new JsonErrorResponse(errors); return(StatusCode(500, response)); } }
/// <summary> /// 既定されたJSON形式のエラーメッセージを返す /// </summary> /// <param name="status">レスポンスのHTTPステータスコード</param> /// <param name="message">送信するエラーメッセージ</param> protected JsonResult JsonError(HttpStatusCode status, string message) { var response = new JsonErrorResponse() { Type = this.GetType().FullName, Title = message, Instance = RequestUrl }; var errors = ModelState?.Values.SelectMany(x => x.Errors); if (errors != null && errors.Count() > 0) { //エラーメッセージがあればそれを出力。なければExceptionのエラーメッセージを出力。 response.Errors = errors.Select(e => string.IsNullOrEmpty(e.ErrorMessage) ? e.Exception?.Message : e.ErrorMessage); } return(new CustomJsonResult((int)status, response)); }
public void OnException(ExceptionContext context) { _logger.LogError(new EventId(context.Exception.HResult), context.Exception, context.Exception.Message); if (context.Exception.GetType() == typeof(MediatrPipelineException)) { var validationException = context.Exception.InnerException as ValidationException; if (validationException != null) { var json = new JsonErrorResponse { Messages = validationException.Errors .Select(e => e.ErrorMessage) .ToArray() }; context.Result = new BadRequestObjectResult(json); } context.HttpContext.Response.StatusCode = (int)HttpStatusCode.BadRequest; } else { var json = new JsonErrorResponse { Messages = new[] { "Internal Error. Try again later.", context.Exception.GetType().ToString(), context.Exception.Message } }; context.Result = new ObjectResult(json) { StatusCode = 500 }; context.HttpContext.Response.StatusCode = (int)HttpStatusCode.InternalServerError; } context.ExceptionHandled = true; }
public RQItem Post(string dbname, string id, [FromBody] RQItem changeRQItem) { if (ModelState.IsValid) { RQItemModelRepository repo = new RQItemModelRepository((new FormatParameter(FormatParameter.FormatEnum.rqi))); RQItemModel model = null; RQItem rqitem = null; model = repo.GetModel("$access$" + id, UserState.States.EditState, true); rqitem = model.RQItems.FirstOrDefault(p => p.DocNo == id); rqitem.Change(changeRQItem); model.Update(); CacheManager.Clear(); return(Get("rqitems", id, "rqi", "edititem", "")); } else { throw new HttpResponseException(JsonErrorResponse.InvalidData()); } }
public override void OnActionExecuting(ActionExecutingContext context) { if (context.ModelState.IsValid) { return; } var validationErrors = context.ModelState .Keys .SelectMany(k => context.ModelState[k].Errors) .Select(e => e.ErrorMessage) .ToArray(); var json = new JsonErrorResponse { Messages = validationErrors }; context.Result = new BadRequestObjectResult(json); }
public async Task <IActionResult> GetClientSettings() { var requestId = Guid.NewGuid().ToString(); _logger.LogInformation($"RequestID:{requestId} GetClientSettings called."); try { var response = await _contextService.GetClientSetingsAsync(); return(Ok(JObject.FromObject(response))); } catch (Exception ex) { _logger.LogError($"RequestID:{requestId} GetClientSettings error: {ex.Message}"); var errorResponse = JsonErrorResponse.BadRequest($"GetClientSettings error: {ex.Message}", requestId); return(BadRequest(errorResponse)); } }
public RQKosBranch Delete(string id, [FromBody] IEnumerable <RQKosTransfer> RQKosTransferBranch) { if (ModelState.IsValid) { RQKosEditModel editModel = new RQKosEditModel(RQKosTransferBranch); if (editModel.Delete()) { return(editModel.RQKosEditSet); } else { throw new HttpResponseException(JsonErrorResponse.Create(editModel.RQKosEditStatus)); } } else { throw new HttpResponseException(JsonErrorResponse.InvalidData()); } }
public async Task <ActionResult <IEnumerable <ReadingDto> > > GetNodeReadings( [FromRoute] string clientId, CancellationToken cancellationToken) { try { var readings = await this.nodeService.GetReadingsById(clientId, cancellationToken); var data = this.mapper .Map <IEnumerable <Reading>, List <ReadingDto> >(readings); var response = new JsonOkResponse <IEnumerable <ReadingDto> >(data); return(Ok(response)); } catch (Exception e) { var message = $"An error accured when fetching readings for client: {clientId}."; var errors = LogError(e, message); var response = new JsonErrorResponse(errors); return(StatusCode(500, response)); } }
public async Task <IActionResult> GetProcessRolesList() { var requestId = Guid.NewGuid().ToString(); _logger.LogInformation($"RequestID:{requestId} GetPermissionsAll called."); try { var response = await _contextService.GetProcessRolesList(requestId); return(Ok(response)); } catch (Exception ex) { _logger.LogError($"RequestID:{requestId} GetPermissionsAll error: {ex.Message}"); var errorResponse = JsonErrorResponse.BadRequest($"GetPermissionsAll error: {ex.Message}", requestId); return(BadRequest(errorResponse)); } }
public void OnException(ExceptionContext context) { _logger.LogError(new EventId(context.Exception.HResult), context.Exception, context.Exception.Message); if (context.Exception.GetType() == typeof(ValidationException)) { var json = new JsonErrorResponse { Messages = new[] { context.Exception.Message } }; context.Result = new BadRequestObjectResult(json); } else if (context.Exception.GetType() == typeof(ServiceException) || context.Exception.GetType() == typeof(RepositoryException)) { var json = new JsonErrorResponse { Messages = new[] { context.Exception.Message } }; context.Result = new NotFoundRequestObjectResult(json); } else { var json = new JsonErrorResponse { Messages = new[] { "An error occurred. Try it again." } }; if (_env.IsDevelopment()) { json.DeveloperMessage = context.Exception; } context.Result = new InternalServerErrorObjectResult(json); } context.ExceptionHandled = true; }
/// <summary/> public void OnException(ExceptionContext context) { logger.LogError(new EventId(context.Exception.HResult), context.Exception, context.Exception.Message); if (context.Exception.GetType() == typeof(Exception)) { var json = new JsonErrorResponse { Messages = new[] { context.Exception.Message } }; // Result asigned to a result object but in destiny the response is empty. This is a known bug of .net core 1.1 //It will be fixed in .net core 1.1.2. See https://github.com/aspnet/Mvc/issues/5594 for more information context.Result = new BadRequestObjectResult(json); context.HttpContext.Response.StatusCode = (int)HttpStatusCode.BadRequest; } else { var json = new JsonErrorResponse { Messages = new[] { "An error occur.Try it again." } }; if (env.IsDevelopment()) { json.DeveloperMessage = context.Exception; } // Result asigned to a result object but in destiny the response is empty. This is a known bug of .net core 1.1 // It will be fixed in .net core 1.1.2. See https://github.com/aspnet/Mvc/issues/5594 for more information context.Result = new ObjectResult(json) { StatusCode = StatusCodes.Status500InternalServerError }; context.HttpContext.Response.StatusCode = (int)HttpStatusCode.InternalServerError; } context.ExceptionHandled = true; }
/// <summary> /// 异常发生+ /// </summary> /// <param name="context"></param> public void OnException(ExceptionContext context) { JsonErrorResponse json = new JsonErrorResponse { Message = context.Exception.Message//错误信息 }; if (_env.IsDevelopment()) { json.DevelopmentMessage = context.Exception.StackTrace;//堆栈信息 } if (context.ExceptionHandled == false) { ResponseResult responseResult = new ResponseResult(ResponseResultMessageDefine.Exception, json.Message); JsonResult result = new JsonResult(responseResult); context.Result = result; } WriteLog(json.Message, context.Exception); context.ExceptionHandled = true; //异常已处理了 }
public override void OnException(ExceptionContext context) { //if (context.Exception.GetType().Equals(typeof(UIException))) //{ // context.Result = new JsonResult(new ReponseModel { Success = false, Data = new List<string>(), Msg = context.Exception.Message }); // context.HttpContext.Response.StatusCode = StatusCodes.Status400BadRequest; //} //else //{ var json = new JsonErrorResponse(); json.Message = context.Exception.Message;//错误信息 if (_env.IsDevelopment()) { json.DevelopmentMessage = context.Exception.StackTrace;//堆栈信息 } context.Result = new InternalServerErrorObjectResult(json); //采用log4net 进行错误日志记录 _logger.LogError(json.Message + WriteLog(json.Message, context.Exception)); //} }
public async Task <ActionResult <IEnumerable <string> > > UpdateDefinitions( [FromRoute] string clientId, [FromBody] JsonRequest <IEnumerable <ReadingDefinitionDto> > request, CancellationToken cancellationToken) { try { var definitions = this.mapper.Map <IEnumerable <ReadingDefinition> >(request.Data); var defResult = await this.nodeService.UpdateDefinitions( clientId, definitions, cancellationToken); return(StatusCode(201)); } catch (Exception e) { var message = $"An error accured when updating definitions for client: {clientId}."; var errors = LogError(e, message); var response = new JsonErrorResponse(errors); return(StatusCode(500, response)); } }
public override void OnActionExecuting(ActionExecutingContext context) { if (!context.ModelState.IsValid) { _logger.LogError($"Bad data passed to model {context.HttpContext.Request.Path}"); var json = new JsonErrorResponse { Messages = context.ModelState }; if (_env.IsDevelopment()) { json.DeveloperMessage = context.ModelState.ToString(); } // displays Joi'ish error message // context.Result = new UnprocessableEntityObjectResult(json); context.Result = new UnprocessableEntityObjectResult(context.ModelState); context.HttpContext.Response.StatusCode = StatusCodes.Status422UnprocessableEntity; } }
public void OnException(ExceptionContext exceptionContext) { _logger.LogError(new EventId(exceptionContext.Exception.HResult), exceptionContext.Exception, exceptionContext.Exception.Message); var json = new JsonErrorResponse { Messages = new[] { "An error occurred." } }; if (_hostingEnvironment.IsDevelopment()) { json.DeveloperMessage = exceptionContext.Exception; } //exceptionContext.Result = new InternalServerErrorObjectResult(json); exceptionContext.HttpContext.Response.StatusCode = (int)HttpStatusCode.InternalServerError; exceptionContext.ExceptionHandled = true; }
public void OnException(ExceptionContext context) { logger.LogError(new EventId(context.Exception.HResult), context.Exception, context.Exception.Message); //if (context.Exception.GetType() == typeof(OrderingDomainException)) //{ // //var problemDetails = new ValidationProblemDetails() // //{ // // Instance = context.HttpContext.Request.Path, // // Status = StatusCodes.Status400BadRequest, // // Detail = "Please refer to the errors property for additional details." // //}; // //problemDetails.Errors.Add("DomainValidations", new string[] { context.Exception.Message.ToString() }); // // context.Result = new BadRequestObjectResult(problemDetails); // context.Result = new BadRequestObjectResult(new { ErrorMessage = context.Exception.Message }); // context.HttpContext.Response.StatusCode = (int)HttpStatusCode.BadRequest; //} //else //{ var json = new JsonErrorResponse { Message = context.Exception.Message }; //if (env.IsDevelopment()) //{ // json.DeveloperMessage = context.Exception; //} // Result asigned to a result object but in destiny the response is empty. This is a known bug of .net core 1.1 // It will be fixed in .net core 1.1.2. See https://github.com/aspnet/Mvc/issues/5594 for more information context.Result = new InternalServerErrorObjectResult(json); context.HttpContext.Response.StatusCode = (int)HttpStatusCode.InternalServerError; // } context.ExceptionHandled = true; }
public void OnException(ExceptionContext context) { _logger.LogError(new EventId(context.Exception.HResult), context.Exception, context.Exception.Message); if (context.Exception.GetType() == typeof(FantasticStayDomainException)) { var problemDetails = new ValidationProblemDetails() { Instance = context.HttpContext.Request.Path, Status = StatusCodes.Status400BadRequest, Detail = "Please refer to the errors property for additional details." }; problemDetails.Errors.Add("DomainValidations", new string[] { context.Exception.Message.ToString() }); context.Result = new BadRequestObjectResult(problemDetails); context.HttpContext.Response.StatusCode = (int)HttpStatusCode.BadRequest; } else { var json = new JsonErrorResponse { Messages = new[] { "An error occur.Try it again." } }; if (_environment.IsDevelopment()) { json.DeveloperMessage = context.Exception; } context.Result = new ObjectResult(json) { StatusCode = StatusCodes.Status500InternalServerError }; context.HttpContext.Response.StatusCode = (int)HttpStatusCode.InternalServerError; } context.ExceptionHandled = true; }