Ejemplo n.º 1
0
        public async Task <IActionResult> Post([FromBody] CadastrarCentroCustoCommand command)
        {
            var response = (CommandResult)await _mediator.Send(command);

            if (response.Success)
            {
                return(Ok(response));
            }
            return(BadRequest());
        }
Ejemplo n.º 2
0
        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")));
        }