public async Task <IActionResult> LoginAsync(LoginRequestModel loginRequestModel) { SuccessResponseDTO <LoginResponseModel> loginResponseModel = new SuccessResponseDTO <LoginResponseModel>(); if (ModelState.IsValid) { loginResponseModel = await _mediator.Send(new LoginUserCommand() { Email = loginRequestModel.Email, Password = loginRequestModel.Password, TenantName = loginRequestModel.TenantName, SceretKey = _appSettings.EncryptionKey, JWTAuth = _jwtAuth }); } else { ErrorResponseDTO err = new ErrorResponseDTO { TenantName = loginRequestModel.TenantName, ErrorType = "required input is missing", MessageCode = "500", RequestId = Convert.ToString(Guid.NewGuid()) }; return(Ok(err)); } return(Ok(loginResponseModel)); }
public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next) { if (!context.ModelState.IsValid) { var errorsInModelState = context.ModelState .Where(x => x.Value.Errors.Count > 0) .ToDictionary(kvp => kvp.Key, kvp => kvp.Value.Errors.Select(x => x.ErrorMessage)).ToArray(); var errorResponse = new ErrorResponseDTO(); foreach (var error in errorsInModelState) { foreach (var subError in error.Value) { var errorModel = new ErrorModelDTO { FieldName = error.Key, Message = subError }; errorResponse.Errors.Add(errorModel); } } context.Result = new BadRequestObjectResult(errorResponse); return; } await next(); }
private static void SetExceptionResult(ExceptionContext context, HttpStatusCode statusCode) { var message = context.Exception.Message; var errorReponse = new ErrorResponseDTO(message); context.Result = new JsonResult(errorReponse) { StatusCode = (int)statusCode }; }
private void ExceptionHandler(IApplicationBuilder app) { app.Run(async ctx => { ctx.Response.StatusCode = 500; ctx.Response.ContentType = "application/json"; var exHandlerPathFeature = ctx.Features.Get <IExceptionHandlerFeature>(); var exception = exHandlerPathFeature.Error; var uri = ctx.Request.Path; var logger = app.ApplicationServices.GetService <ILogger>(); logger.Error(exception, "Error occurred when processing request {uri}", uri); var errorResponse = new ErrorResponseDTO { Message = exception.Message }; await ctx.Response.WriteAsync(JsonConvert.SerializeObject(errorResponse)); }); }
public override void OnException(ExceptionContext context) { _logger.LogError(context.Exception, context.Exception.Message); var statusCode = HttpStatusCode.BadRequest; //Status code can be custom made var errorResponseDTO = new ErrorResponseDTO { Message = context.Exception.Message, StatusCode = (int)HttpStatusCode.InternalServerError }; if (context.Exception is HttpRequestException) { statusCode = HttpStatusCode.BadRequest; errorResponseDTO.StatusCode = (int)HttpStatusCode.BadRequest; } context.HttpContext.Response.ContentType = "application/json"; context.HttpContext.Response.StatusCode = (int)statusCode; context.Result = new JsonResult(errorResponseDTO); }