public async Task <IActionResult> AtualizarConta(int id, AtualizarContaRequest request) { id = request.Id; if (request == null || id == 0) { return(BadRequest()); } var data = _mapper.Map <Conta>(request); var response = await _contaRepository.AtualizarConta(id, data); return(Ok(response)); }
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 }