public void Debitar(DebitoCommand debitoCommand)
        {
            var conta = _contaRepositorio.ObterPorId(debitoCommand.ContaId);

            if (conta.Saldo.Valor < debitoCommand.Valor)
            {
                DomainEvent.RaiseEvent(new DomainNotification("SaldoInsuficiente", "Saldo insuficiente"));
                return;
            }

            conta.Debitar(debitoCommand.Valor);
            _contaRepositorio.Editar(conta);
        }
        public void Transferir(TransferenciaCommand transferenciaCommand)
        {
            var contaDebito = _contaRepositorio.ObterPorId(transferenciaCommand.ContaDebitoId);

            if (contaDebito.Saldo.Valor < transferenciaCommand.Valor)
            {
                DomainEvent.RaiseEvent(new DomainNotification("SaldoInsuficiente", "Saldo insuficiente"));
                return;
            }

            var contaCredito = _contaRepositorio.ObterPorId(transferenciaCommand.ContaCreditoId);

            contaDebito.Debitar(transferenciaCommand.Valor);
            contaCredito.Creditar(transferenciaCommand.Valor);

            _contaRepositorio.Editar(contaDebito);
            _contaRepositorio.Editar(contaCredito);
        }
Beispiel #3
0
 private static void NotifyAll(IEnumerable <DomainNotification> notifications)
 {
     notifications.ToList().ForEach(validation => { DomainEvent.RaiseEvent(validation); });
 }