Пример #1
0
        public override bool AddEntry(CSVEntry subentry)
        {
            if (IsSplitHeader(subentry) && this.HeaderEntry == null)
            {
                this.HeaderEntry = subentry;
            }
            else if (IsSplitSubEntry(subentry))
            {
                this.SplitSubEntries.Add(subentry);
            }
            else
            {
                // if we're adding to a split transaction but it's not
                // either a header or split body, then this must be from the
                // next transaction. Indiciate that we're done and return
                // false.
                if (this.HeaderEntry != null)
                {
                    this.TransComplete = true;
                }
                else
                {
                    this.TransComplete = false;
                }

                return(false);
            }

            return(true);
        }
Пример #2
0
 /// <summary>
 /// Indiciates if the CSVEntry indicates that it's a split header.
 /// </summary>
 /// <param name="entry">CSVEntry to check.</param>
 /// <returns><c>true</c> if a split header.</returns>
 public static bool IsSplitHeader(CSVEntry entry)
 {
     if (entry.CategoryString.Contains(SplitCategoryString))
     {
         return(true);
     }
     return(false);
 }
Пример #3
0
        /// <summary>
        /// Uses the presence or absence of a valid date in the line to determine whether
        /// this is part of a multi-line split transaction.
        /// </summary>
        /// <remarks>Note that this does not detect the Split header.</remarks>
        /// <param name="entry">line to examine</param>
        /// <returns><c>true</c> if part of a split transaction.</returns>
        public static bool IsSplitSubEntry(CSVEntry entry)
        {
            if (entry == null)
            {
                return(false);
            }

            return(!entry.TransactionDate.HasValue);
        }
Пример #4
0
 public override bool AddEntry(CSVEntry entry)
 {
     if (IsStandardTransaction(entry))
     {
         this.transactionLine = entry;
         this.transComplete   = true;
         return(true);
     }
     return(false);
 }
Пример #5
0
 private Transaction GetTranaction(CSVEntry entry)
 {
     if (StandardTransaction.IsStandardTransaction(entry))
     {
         return(new StandardTransaction());
     }
     else if (SplitTransaction.IsSplitHeader(entry))
     {
         return(new SplitTransaction());
     }
     else if (SplitTransaction.IsSplitSubEntry(entry))
     {
         throw new ApplicationException();
     }
     else
     {
         throw new ApplicationException();
     }
 }
Пример #6
0
 public static bool IsStandardTransaction(CSVEntry entry)
 {
     return(!SplitTransaction.IsSplitHeader(entry) && !SplitTransaction.IsSplitSubEntry(entry));
 }