private void SetReconciliation(IReadOnlyDictionary<LedgerBucket, SpecificLedgerEntryTestDataBuilder> ledgers, string remarks)
{
var recon = new LedgerEntryLine(this.tempReconDate, this.tempBankBalances) { Remarks = remarks };
LedgerEntryLine previousRecon = Reconciliations.OrderByDescending(r => r.Date).FirstOrDefault();
var entries = new List<LedgerEntry>();
foreach (LedgerBucket ledgerBucket in this.ledgerBuckets)
{
decimal openingBalance;
if (previousRecon == null)
{
openingBalance = this.openingBalances[ledgerBucket];
}
else
{
LedgerEntry previousEntry = previousRecon.Entries.Single(e => e.LedgerBucket == ledgerBucket);
openingBalance = previousEntry.Balance;
}
var entry = new LedgerEntry
{
LedgerBucket = ledgerBucket,
Balance = openingBalance
};
entry.SetTransactionsForTesting(ledgers[ledgerBucket].Transactions.ToList());
entries.Add(entry);
}
recon.SetEntriesForTesting(entries);
this.reconciliations.Add(recon);
}