コード例 #1
0
        public Task <ICommandResult> Handle(EditarCentroCustoCommand request, CancellationToken cancellationToken)
        {
            request.Validate();
            if (request.Invalid)
            {
                AddNotifications(request);
                return(Task.FromResult <ICommandResult>(new CommandResult("001", false, "Não foi possível editar centro de custo")));
            }

            CentroCusto centroCusto = _repositorio.FindCentroCusto(request.IdControCusto);

            if (centroCusto == null)
            {
                AddNotification("", "Centro de custo não exite");
                return(Task.FromResult <ICommandResult>(new CommandResult("001", false, "Não foi possível editar centro de custo")));
            }



            throw new System.NotImplementedException();
        }
コード例 #2
0
        public ICommandResult Handle(EditarCentroCustoCommand command)
        {
            //Validar Empresa
            var empresa = _empresaRepository.Buscar(e => e.CodEmpresa == command.CodEmpresa && e.IdSituacao == (int)ESituacao.Ativo).FirstOrDefault();

            if (empresa == null)
            {
                AddNotification("Cod Empresa", "O Código de Empresa informado não existe ou Empresa não está ativa");

                return(new CommandResult(false, "Não foi possível adicionar o registro"));
            }



            //Validar Grupo
            var grupo = _grupoRepository.Buscar(g => g.Codigo == command.CodGrupo).FirstOrDefault();

            if (grupo == null)
            {
                AddNotification("Cod Grupo", "O Código de Grupo informado não existe");

                return(new CommandResult(false, "Não foi possível adicionar o registro"));
            }



            //Validar Classe
            var classe = _classeContabilRepository.Buscar(c => c.Codigo == command.CodClasse).FirstOrDefault();

            if (classe == null)
            {
                AddNotification("Cod Classe", "O Código de Classe informado não existe");

                return(new CommandResult(false, "Não foi possível adicionar o registro"));
            }



            //Validar TipoBloqueio
            var tipoBloqueio = _tipoBloqueioRepository.Buscar(t => t.Codigo == command.CodTipoBloqueio).FirstOrDefault();

            if (tipoBloqueio == null)
            {
                AddNotification("Tipo Bloqueio", "O Tipo de Bloqueio informado não existe");

                return(new CommandResult(false, "Não foi possível adicionar o registro"));
            }



            //Validar Centro de Custo
            var centroCusto = _centroCustoRepository.Buscar(c => c.CodEmpresa == command.CodEmpresa && c.CodCentroCusto == command.CodCentroCusto).FirstOrDefault();

            if (centroCusto == null)
            {
                AddNotification("Inexistente", "O registro informado não existe na APP");

                return(new CommandResult(false, "Não foi possível editar o registro"));
            }


            if (centroCusto.OrigemLegado == true)
            {
                AddNotification("Legado", "Não é permitido a edição deste registro. Pertence a um sistema legado");

                return(new CommandResult(false, "Não é permitido a edição deste registro. Pertence a um sistema legado"));
            }



            //Gerar as Entidades
            var centroCustoModel = new CentroCusto(command.CodEmpresa, command.CodCentroCusto, command.NomeCentroCusto, command.CodGrupo, command.CodClasse, command.CodTipoBloqueio);


            //Auditoria
            var auditoria = new LogAuditoria("Cadastro", centroCustoModel.GetType().Name, EAcao.Atualizar, centroCustoModel.GetType().Namespace, JsonConvert.SerializeObject(command), UserIdLogado);



            // Relacionamentos (Se houver)



            // Agrupar as Validações
            AddNotifications(centroCustoModel);



            // Checar as notificações
            if (Invalid)
            {
                return(new CommandResult(false, "Não foi possível realizar esta operação"));
            }


            // Salvar as Informações
            _centroCustoRepository.Atualizar(centroCustoModel);



            _logAuditoriaRepository.Adicionar(auditoria);



            // Enviar E-mail de boas vindas (Se houver necessidade)



            // Retornar informações
            return(new CommandResult(true, "Operação realizada com sucesso"));
        }
コード例 #3
0
        public IActionResult Put([FromBody] EditarCentroCustoCommand command)
        {
            var result = _handler.Handle(command);

            return(Response(result, _handler.Notifications));
        }