Exemple #1
0
        private void OnFundsWithdrawal(FundsWithdrawalEvent @event)
        {
            var newTransaction = new Transaction(TransactionType.Withdrawal, @event.AggregateId, @event.Amount);

            Transactions.Add(newTransaction);
            CurrentBalance = CurrentBalance - @event.Amount;
        }
Exemple #2
0
 public void Withdraw(decimal amount, Guid correlationId)
 {
     if (CurrentBalance >= amount)
     {
         var withdraw = new FundsWithdrawalEvent(Id, CurrentVersion, correlationId, amount);
         ApplyEvent(withdraw);
     }
 }
        public Task Handle(FundsWithdrawalEvent @event)
        {
            return(Task.Run(() =>
            {
                var summary = _readRepository.Get(@event.AggregateId);

                summary.Balance -= @event.Amount;

                _readRepository.Save(summary);
            }));
        }
 private Task PublishAsync(FundsWithdrawalEvent @event)
 {
     return(_bus.PublishAsync(@event));
 }