コード例 #1
0
        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));
        }
コード例 #2
0
ファイル: ValidationFilter.cs プロジェクト: roma436/Kyrsova
        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();
        }
コード例 #3
0
        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
            };
        }
コード例 #4
0
ファイル: Startup.cs プロジェクト: goeaway/CheckoutPaymentAPI
        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));
            });
        }
コード例 #5
0
        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);
        }