public Result AtualizarConta(AtualizarContaCommand command) { try { var result = command.Validate(); if (result.IsFailure) { return(result); } var contaOrNothing = _repository.ObterConta(command.Codigo); if (contaOrNothing.HasNoValue) { return(Result.Fail("Não existe uma conta com o código especificado")); } var conta = contaOrNothing.Value; conta.Renomear(result.Value.Nome); conta.AtualizarIcone(result.Value.Icone); _repository.AtualizarConta(conta); return(Result.Ok()); } catch (Exception ex) { return(Result.Fail("Falha ao atualizar conta")); } }
public async Task <bool> Handle(AtualizarContaCommand request, CancellationToken cancellationToken) { var baseTitular = _contaRepository.ObterTitularDaContaPorIdConta(request.Id).Result; var conta = ContaCorrente.ContaFactory.AtualizarConta(request.Id, baseTitular.Id, baseTitular, request.Numero, request.Saldo); if (!ExecutarValidacao(conta)) { return(false); } await _contaRepository.Adicionar(conta); return(true); }
public void Handle(AtualizarContaCommand message) { if (!CommandValido(message)) { return; } Conta conta = new Conta(message.Responsavel, message.Documento, message.NomeFantasia, new Core_AppStyle_Conta(message.LogoUri, message.Sobre, message.Informacoes, message.Ajuda)); _contaRepository.Atualizar(conta); if (!Commit()) { return; } }
public void Handle(AtualizarContaCommand command) { #region Validacoes de negócio // Verificar se conta cadastrada if (_contaRepository.FindById(command.Id) == null) { command.AddNotification("Conta", "Conta não existente no banco"); } if (command.Invalid) { NotificarValidacoesErro(command.Notifications); return; } //TODO: verificar se o Cliente que está alterando, é o dono da conta #endregion #region Validacoes de dominio //gerar os VOs //rellacionamentos //caso exista VOs com validações, deve-se lembrar de agrega-los a entidade e suas validações as do handler //como os VOs de conta foram criados para "separar" as responsabilidades de conta e a conta é a raiz de agregação das mesmas, ////deixei as validações da mesma toda na entidade var conta = Conta.ContaFactory.NovaContaCompleta( command.Id, command.Nome, command.ValorTotal, command.QtdParcelas, command.DiaPrimeiroPgto, command.FrequenciaDiaPgto, command.PorcVariacaoMensal, command.UsuarioId ); //Aplicar as validacoes command.AddNotifications(conta); //Checar validacoes if (command.Invalid) { NotificarValidacoesErro(command.Notifications); return; } #endregion #region Acoes handle //Salvar informacoes _contaRepository.DeletarParcelasConta(conta.Id); _contaRepository.AtualizarConta(conta); //Enviar e-mail de conta cadastrada _emailService.Enviar("Desenvolvedor", "*****@*****.**", "Conta Atualizada", "Conta Atuaizada com sucesso"); if (Commit()) { //Dispara evento de processo concluido _bus.RaiseEvent(new ContaAtualizadaEvent(conta.Id, conta.Nome, conta.ValorTotal, conta.Pago, conta.QtdParcelas, conta.DataProxPgto, conta.Parcelado, conta.DataPrimeiroPgto, conta.FrequenciaDiaPgto, conta.PorcVariacaoMensal)); } #endregion }
public ActionResult Put([FromBody] AtualizarContaCommand command) { var response = _service.AtualizarConta(command); return(Result(response)); }