public ICommandResult Handle(AtualizarAreaAtuacaoCommand command)
        {
            if (!command.IsValidCommand())
            {
                return(new CommandResult(false, "Por favor, verificar os campos abaixo", command.Notifications));
            }

            var areaAtuacao = _repository.AreaAtuacao(command.Id);

            if (areaAtuacao == null)
            {
                return(new CommandResult(false, $"A àrea de atuação não existe na base de dados. Código informado: { command.Id }", new { }));
            }

            if (command.Titulo != areaAtuacao.Titulo)
            {
                if (_repository.AreaAtuacaoExistente(command.Titulo))
                {
                    AddNotification("Titulo", $"Área de atuação já cadastrada na base de dados. Título informado: { command.Titulo }");
                }
            }

            areaAtuacao.AtribuirAreaAtuacao(command.Titulo, command.Descricao);

            if (command.Ativo.Equals(EBoolean.False))
            {
                areaAtuacao.Desativar();
            }
            else
            {
                areaAtuacao.Ativar();
            }

            if (Invalid)
            {
                return(new CommandResult(false, "Por favor, corrigir os campos abaixo", Notifications));
            }

            _repository.Atualizar(areaAtuacao);

            return(new CommandResult(true, "Área de atuação atualizada com sucesso", new
            {
                Id = areaAtuacao.Id,
                Titulo = areaAtuacao.Titulo
            }));
        }
Example #2
0
        public ICommandResult Handle(CriarTelaCommand command)
        {
            if (!command.IsValidCommand())
            {
                return(new CommandResult(false, "Por favor, verificar os campos abaixo", command.Notifications));
            }

            if (_telaRepository.TelaExistente(command.Titulo))
            {
                AddNotification("Empresa", $"Nome de tela já cadastrado na base de dados. Nome informado: { command.Titulo }");
            }

            var areaAtuacao = _areaAtuacaoRepository.AreaAtuacao(command.IdAreaAtuacao);

            if (areaAtuacao == null)
            {
                AddNotification("IdAreaAtuacao", $"A área de atuação não existe na base de dados. Código informado: { command.IdAreaAtuacao }");
            }

            var tela = new Tela(areaAtuacao, command.Titulo, command.Descricao, command.Link);

            AddNotifications(tela, areaAtuacao);

            if (Invalid)
            {
                return(new CommandResult(false, "Por favor, corrigir os campos abaixo", Notifications));
            }

            _telaRepository.Salvar(tela);

            return(new CommandResult(true, "Tela cadastrada com sucesso", new
            {
                Area = areaAtuacao.Titulo,
                Titulo = tela.Titulo
            }));
        }