internal CashAccountTransaction(Guid id, Date date, string description, decimal amount, BankAccountTransactionType type, decimal balance) { Id = id; Date = date; Description = description; Amount = amount; Type = type; Balance = balance; }
public void AddTransaction(Date date, decimal amount, string description, BankAccountTransactionType type) { if (((type == BankAccountTransactionType.Withdrawl) || (type == BankAccountTransactionType.Fee)) && (amount > 0.00m)) { _Transactions.Add(date, -amount, description, type); } else { _Transactions.Add(date, amount, description, type); } }
public void MakeCashTransaction(Date transactionDate, BankAccountTransactionType type, decimal amount, string comment, Guid transactionId) { var @event = new CashTransactionOccurredEvent(Id, Version, transactionId, transactionDate, comment) { CashTransactionType = type, Amount = amount }; Apply(@event); PublishEvent(@event); }
public void Add(Date date, decimal amount, string description, BankAccountTransactionType type) { if ((Count == 0) || (date >= Latest)) { var transaction = new CashAccountTransaction(Guid.NewGuid(), date, description, amount, type, _CashAccount.Balance() + amount); Add(transaction); } else { var transaction = new CashAccountTransaction(Guid.NewGuid(), date, description, amount, type, _CashAccount.Balance(date) + amount); Add(transaction); // Update balance on subsequent transactions var index = IndexOf(date, TransationListPosition.Last); for (var i = index + 1; i < Count; i++) { this[i].Balance += amount; } } }