public static AccountSnapshot Make(IEnumerable <Transaction> transactions, Account account) { var snapshot = new AccountSnapshot(account.Id); AnonymousAccountSnapshot.Make(snapshot, transactions); return(snapshot); }
//---------------------------------------------------------------------------------------------- public static AnonymousAccountSnapshot Make(AnonymousAccountSnapshot snapshot, IEnumerable <AnonymousTransaction> transactions) { // Make certain it's really an AnonymousTransaction, and not some derived class. snapshot.History = transactions.Select(t => new AnonymousTransaction(t)) .OrderBy(a => a.Timestamp) .ToList(); snapshot.Balance = snapshot.History.Where(t => ((t.TransactionType != ETransactionType.Credit) || (t.TransactionType != ETransactionType.Debit))) .Sum(t => (t.TransactionType == ETransactionType.Credit) ? t.Amount : (-t.Amount)); snapshot.Timestamp = ((snapshot.History.Any()) ? snapshot.History.Last().Timestamp : DateTime.UtcNow); return(snapshot); }