Beispiel #1
0
        /// <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);
                }
            }
        }