private void OnFundsWithdrawal(FundsWithdrawalEvent @event) { var newTransaction = new Transaction(TransactionType.Withdrawal, @event.AggregateId, @event.Amount); Transactions.Add(newTransaction); CurrentBalance = CurrentBalance - @event.Amount; }
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)); }