public async Task <IActionResult> Post([FromBody] CadastrarCentroCustoCommand command) { var response = (CommandResult)await _mediator.Send(command); if (response.Success) { return(Ok(response)); } return(BadRequest()); }
public Task <ICommandResult> Handle(CadastrarCentroCustoCommand request, CancellationToken cancellationToken) { request.Validate(); if (request.Invalid) { AddNotifications(request); return(Task.FromResult <ICommandResult>(new CommandResult("001", false, "Não foi possível realizar cadastro centro de custo"))); } var empresa = _repositorio.FindEmpresa(request.IdEmpresa); if (empresa == null) { AddNotification("", "Empresa não foi encontrada"); return(Task.FromResult <ICommandResult>(new CommandResult("001", false, "Não foi possível realizar cadastro centro de custo"))); } CentroCusto controCusto = new CentroCusto(request.CodigoControCusto, request.Descricao); if (controCusto.Valid) { empresa.AddCentroCusto(controCusto); } else { AddNotifications(controCusto); } var centroCustoExistentes = _repositorio.ExisteCodigoCentroCusto(ref empresa); if (centroCustoExistentes.Any()) { foreach (var c in centroCustoExistentes) { empresa.RemoverCentroCusto(c); } } if (empresa.CentrosCusto.Where(x => x.Id.Equals(0)).Count() > 0) { if (_repositorio.InserirCentroCusto(ref empresa)) { return(Task.FromResult <ICommandResult>(new CommandResult("000", true, "Dados inseridos com sucesso"))); } } else { AddNotification("", "Nenhum centro de custo valído para gravar"); } return(Task.FromResult <ICommandResult>(new CommandResult("001", false, "Não foi possível realizar cadastro centro de custo"))); }