public override void Handle(ExceptionHandlerContext context) { if (_logger == null) { _logger = LogManager.GetLogger <GlobalExceptionHandler>(); } var exception = context.Exception; _logger.Error(exception.Message, exception); while (exception.InnerException != null) { exception = exception.InnerException; } ErrorResponse errorResponse = new ErrorResponse(); errorResponse.AdditionalInfo = exception.Message; errorResponse.ErrorCode = "InternalServerError"; errorResponse.AddErrorMessage(Resources.GlobalError); var response = context.Request.CreateResponse(HttpStatusCode.InternalServerError, errorResponse); context.Result = new ResponseMessageResult(response); }
public override void OnException(ExceptionContext context) { if (context.Exception == null) { context.ExceptionHandled = false; return; } if (!ExceptionType.IsInstanceOfType(context.Exception)) { context.ExceptionHandled = false; return; } ErrorResponse errorResponse = new ErrorResponse(); errorResponse.ErrorCode = Code; errorResponse.AddErrorMessage(Message); errorResponse.AdditionalInfo = context.Exception.Message; ObjectResult objectResult = new ObjectResult(errorResponse) { StatusCode = (int)StatusCode }; context.ExceptionHandled = true; context.Result = objectResult; _logger?.LogInformation($"Exception:{context.Exception.GetType()} is transfrormed."); }
public override void OnException(ExceptionContext context) { ControllerActionDescriptor actionDescriptor = context.ActionDescriptor as ControllerActionDescriptor; if (actionDescriptor != null) { var attribute = actionDescriptor.ControllerTypeInfo.GetCustomAttribute(typeof(ApiControllerAttribute)); if (attribute != null) { _logger.LogError(context.Exception, context.Exception?.Message); ErrorResponse errorResponse = new ErrorResponse(); errorResponse.AdditionalInfo = context.Exception?.Message; errorResponse.ErrorCode = "InternalServerError"; errorResponse.AddErrorMessage("There was a problem while processing your request."); if (EnvironmentName?.ToLowerInvariant() != "production") { errorResponse.Exception = context.Exception?.ToString(); } var objectResult = new ObjectResult(errorResponse); objectResult.StatusCode = 500; context.Result = objectResult; } } }
protected IActionResult InvalidRequest(ModelStateDictionary modelState) { ErrorResponse errorResponse = new ErrorResponse(); errorResponse.ErrorCode = "BadRequest"; if (modelState.IsValid) { throw new Exception("You cannot call InvalidRequest with a valid ModelState."); } foreach (var state in modelState.Values) { if (state.Errors.HasElements()) { foreach (ModelError modelStateError in state.Errors) { errorResponse.AddErrorMessage(modelStateError.GetErrorMessage()); } } } Logger?.LogInformation($"InvalidRequest: {errorResponse.GetFullMessage()}"); return(BadRequest(errorResponse)); }
protected IActionResult NotFound(string errorMessage) { ErrorResponse errorResponse = new ErrorResponse(); errorResponse.AddErrorMessage(errorMessage); return(base.NotFound(errorResponse)); }
protected IHttpActionResult InvalidRequest(string errorMessage, string errorCode) { ErrorResponse errorResponse = new ErrorResponse(); errorResponse.ErrorCode = errorCode; errorResponse.AddErrorMessage(errorMessage); return(Content(HttpStatusCode.BadRequest, errorResponse)); }
protected IActionResult InvalidRequest(string errorMessage, string errorCode) { ErrorResponse errorResponse = new ErrorResponse(); errorResponse.ErrorCode = errorCode; errorResponse.AddErrorMessage(errorMessage); return(BadRequest(errorResponse)); }
protected IHttpActionResult Forbidden(string errorMessage, string errorCode) { ErrorResponse errorResponse = new ErrorResponse(); errorResponse.ErrorCode = errorCode; errorResponse.AddErrorMessage(errorMessage); return(Content(HttpStatusCode.Forbidden, errorResponse)); }
protected IHttpActionResult InternalServerError(string errorMessage, string additionalInfo = null) { ErrorResponse errorResponse = new ErrorResponse(); errorResponse.ErrorCode = "InternalServerError"; errorResponse.AdditionalInfo = additionalInfo; errorResponse.AddErrorMessage(errorMessage); return(Content(HttpStatusCode.InternalServerError, errorResponse)); }
private HttpResponseMessage Execute() { ErrorResponse errorResponse = new ErrorResponse(); errorResponse.AddErrorMessage(ReasonPhrase); HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Unauthorized, errorResponse); return(response); }
protected IActionResult Forbidden(string errorMessage, string errorCode) { ErrorResponse errorResponse = new ErrorResponse(); errorResponse.ErrorCode = errorCode; errorResponse.AddErrorMessage(errorMessage); Logger?.LogWarning($"Forbidden: {errorResponse.GetFullMessage()}"); return(StatusCode(HttpStatusCode.Forbidden.ToInt(), errorResponse)); }
protected IActionResult InvalidRequest(string errorMessage, string errorCode) { ErrorResponse errorResponse = new ErrorResponse(); errorResponse.ErrorCode = errorCode; errorResponse.AddErrorMessage(errorMessage); Logger?.LogInformation($"InvalidRequest: {errorResponse.GetFullMessage()}"); return(BadRequest(errorResponse)); }
public void OnException(ExceptionContext context) { ErrorResponse errorResponse = new ErrorResponse(); HttpStatusCode resultHttpStatusCode; if (context.Exception is CustomApiException customApiException) { errorResponse.AddErrorMessage(customApiException.FriendlyMessage); resultHttpStatusCode = customApiException.ReturnHttpStatusCode; } else { errorResponse.AddErrorMessage("Unexpected error occured", context.Exception); resultHttpStatusCode = HttpStatusCode.InternalServerError; } context.Result = new ObjectResult(errorResponse) { StatusCode = (int)resultHttpStatusCode, }; DoLogging(context.Exception, resultHttpStatusCode); }
public async Task <HttpResponseMessage> ExecuteAsync(CancellationToken cancellationToken) { HttpResponseMessage response = await InnerResult.ExecuteAsync(cancellationToken); if (response.StatusCode == HttpStatusCode.Unauthorized) { if (response.Headers.WwwAuthenticate.All(h => h.Scheme != Challenge.Scheme)) { response.Headers.WwwAuthenticate.Add(Challenge); ErrorResponse errorResponse = new ErrorResponse(); errorResponse.AddErrorMessage("Unauthorized"); response = response.RequestMessage.CreateResponse(HttpStatusCode.Unauthorized, errorResponse); } } return(response); }
public override void OnException(ExceptionContext context) { _logger.LogError(context.Exception, context.Exception?.Message); ErrorResponse errorResponse = new ErrorResponse(); errorResponse.AdditionalInfo = context.Exception?.Message; errorResponse.ErrorCode = "InternalServerError"; errorResponse.AddErrorMessage("There was a problem while processing your request."); if (EnvironmentName?.ToLowerInvariant() != "production") { errorResponse.Exception = context.Exception?.ToString(); } var objectResult = new ObjectResult(errorResponse); objectResult.StatusCode = 500; context.Result = objectResult; }
public override void OnException(ExceptionContext context) { while (context.Exception?.InnerException != null) { context.Exception = context.Exception.InnerException; } _logger.LogError(context.Exception, "There was a problem while processing your request."); ErrorResponse errorResponse = new ErrorResponse(); errorResponse.AdditionalInfo = context.Exception?.Message; errorResponse.ErrorCode = "InternalServerError"; errorResponse.AddErrorMessage("There was a problem while processing your request."); var objectResult = new ObjectResult(errorResponse); objectResult.StatusCode = 500; context.Result = objectResult; }