public void Add(DateTime date, double value) { if (GetCash(date) + value < 0) { throw new InvalidOperationException("Not enough cash"); } CashTransactions.Add(date, value); }
/// <summary> /// Adds a transaction to the appropriate transaction list. /// </summary> /// <param name="parserName">The GetType().Name of the parser that is adding a transaction.</param> /// <param name="transaction">The transaction to add.</param> public void AddTransaction(string parserName, object transaction) { bool isAutoAcct = false; // first, see if we are associating transactions with an account via !Option:AutoSwitch if (isAutoSwitch) { isAutoAcct = AutoSwitchAccountList.AddTransaction(parserName, transaction); } if (!isAutoAcct) { // this transaction does not associate with a particular account if (parserName == typeof(AccountListParser).Name) { AccountList.Add((AccountListTransaction)transaction); } else if (parserName == typeof(AssetParser).Name) { AssetTransactions.Add((BasicTransaction)transaction); } else if (parserName == typeof(BankParser).Name) { BankTransactions.Add((BasicTransaction)transaction); } else if (parserName == typeof(CashParser).Name) { CashTransactions.Add((BasicTransaction)transaction); } else if (parserName == typeof(CategoryListParser).Name) { CategoryListTransactions.Add((CategoryListTransaction)transaction); } else if (parserName == typeof(ClassListParser).Name) { ClassListTransactions.Add((ClassListTransaction)transaction); } else if (parserName == typeof(CreditCardParser).Name) { CreditCardTransactions.Add((BasicTransaction)transaction); } else if (parserName == typeof(InvestmentParser).Name) { InvestmentTransactions.Add((InvestmentTransaction)transaction); } else if (parserName == typeof(LiabilityParser).Name) { LiabilityTransactions.Add((BasicTransaction)transaction); } else if (parserName == typeof(MemorizedTransactionListParser).Name) { MemorizedTransactionListTransactions.Add((MemorizedTransactionListTransaction)transaction); } else if (parserName == typeof(PriceParser).Name) { PriceTransactions.Add((PriceRecord)transaction); } else if (parserName == typeof(SecurityParser).Name) { SecurityTransactions.Add((SecurityTransaction)transaction); } else if (parserName == typeof(TagParser).Name) { TagTransactions.Add((TagTransaction)transaction); } else if (parserName == typeof(UnhandledTypeParser).Name) { UnhandledTypeTransactions.Add((UnhandledTypeTransaction)transaction); } } }