예제 #1
0
        public async Task <IActionResult> DeleteProduct(int id)
        {
            Domain.Result result = await _mediator.Send(new Domain.Catalog.Commands.Delete.Request {
                Id = id
            },
                                                        CancellationToken.None);

            if (result.HasValidation)
            {
                return(BadRequest(result));
            }
            return(NoContent());
        }
예제 #2
0
        private IActionResult ValidationHandler <TCommand>(TCommand command, Domain.Result result, string redirectAction)
        {
            if (!result.HasValidation)
            {
                return(RedirectToAction(redirectAction));
            }

            foreach (string validation in result.Validations)
            {
                ModelState.AddModelError("", validation);
            }

            return(View(command));
        }
예제 #3
0
        public async Task <TResponse> Handle(TRequest request, CancellationToken cancellationToken, RequestHandlerDelegate <TResponse> next)
        {
            if (request is Domain.Validatable validatable)
            {
                validatable.Validate();
                if (validatable.Invalid)
                {
                    Domain.Result validations = new Domain.Result();
                    foreach (Flunt.Notifications.Notification notification in validatable.Notifications)
                    {
                        validations.AddValidation(notification.Message);
                    }

                    var response = validations as TResponse;
                    return(response);
                }
            }

            TResponse result = await next();

            return(result);
        }
예제 #4
0
        public async Task <IActionResult> Create(Domain.Despesas.Commands.Inserir.Request request)
        {
            Domain.Result result = await _mediator.Send(request, CancellationToken.None);

            return(ValidationHandler(request, result, "Index"));
        }
예제 #5
0
        public async Task <IActionResult> UpdateProduct(Domain.Catalog.Commands.Update.Request request)
        {
            Domain.Result result = await _mediator.Send(request, CancellationToken.None);

            return(Ok(result));
        }