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 })); }
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 })); }