示例#1
0
 public Task Handle(CreditCardTransactionAdded evt, CancellationToken cancellationToken)
 {
     return(Update(evt.AggregateId, model =>
     {
         if (evt.Transaction.Type == TransactionType.Fee && evt.Transaction.ReferenceId != null)
         {
             model.Transactions.SingleOrDefault(x => x.Id == evt.Transaction.ReferenceId)?
             .FeeTransactions.Add(new TransactionModel
             {
                 Amount = evt.Transaction.Value,
                 Created = evt.Transaction.Created,
                 CurrencyCode = evt.Transaction.Value.CurrencyCode.ToString("G"),
                 Id = evt.Transaction.Id,
                 Type = TransactionType.Fee.ToString("G")
             });
         }
         else
         {
             model.Transactions.Add(new TransactionModel
             {
                 Amount = evt.Transaction.Value,
                 Created = evt.Transaction.Created,
                 CurrencyCode = evt.Transaction.Value.CurrencyCode.ToString("G"),
                 Id = evt.Transaction.Id,
                 Type = TransactionType.Payment.ToString("G")
             });
         }
         var transactions = model.Transactions.ToList();
         transactions.Sort(((t, next) => next.Created.CompareTo(t.Created)));
         model.Transactions = transactions;
     }));
 }
示例#2
0
 public void Apply(CreditCardTransactionAdded evt)
 {
     _transactions.Add(evt.Transaction);
 }