public ErrorResponseModel GetResponseByExceptionType(TypedException ex) { HttpStatusCode statusCode; switch (ex.Type) { case ExceptionType.InvalidToken: case ExceptionType.TokenExpired: statusCode = HttpStatusCode.Unauthorized; break; case ExceptionType.LoginAlreayExists: case ExceptionType.EmailAlreayExists: case ExceptionType.InvalidLoginOrPassword: case ExceptionType.BadRequest: statusCode = HttpStatusCode.BadRequest; break; default: statusCode = HttpStatusCode.InternalServerError; break; } return(new ErrorResponseModel() { StatusCode = statusCode, ErrorMessage = ex.IsCustomMessage ? ex.Message : GetExceptionMessageText(ex.Type) }); }
private async Task HandleTypedExceptionAsync(HttpContext context, TypedException exception) { var response = context.Response; var statusCode = (int)HttpStatusCode.OK; response.ContentType = "application/json"; response.StatusCode = statusCode; var responseObj = Mapper.Map <Response>(_exceptionService.GetResponseByExceptionType(exception)); responseObj.success = false; await response.WriteAsync(JsonConvert.SerializeObject(responseObj)); }