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); }
/// <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); }
/// <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); }
public override bool AddEntry(CSVEntry entry) { if (IsStandardTransaction(entry)) { this.transactionLine = entry; this.transComplete = true; return(true); } return(false); }
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(); } }
public static bool IsStandardTransaction(CSVEntry entry) { return(!SplitTransaction.IsSplitHeader(entry) && !SplitTransaction.IsSplitSubEntry(entry)); }