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()); }
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)); }
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); }
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")); }
public async Task <IActionResult> UpdateProduct(Domain.Catalog.Commands.Update.Request request) { Domain.Result result = await _mediator.Send(request, CancellationToken.None); return(Ok(result)); }