Example #1
0
        public static AccountSnapshot Make(IEnumerable <Transaction> transactions, Account account)
        {
            var snapshot = new AccountSnapshot(account.Id);

            AnonymousAccountSnapshot.Make(snapshot, transactions);

            return(snapshot);
        }
Example #2
0
        //----------------------------------------------------------------------------------------------

        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);
        }