private int SearchForOtherNonLedgerBookOverspentBuckets(
StatementModel statement,
GlobalFilterCriteria filter,
IBudgetCurrencyContext budget,
IDictionary<BudgetBucket, decimal> overspendingSummary)
{
var warnings = 0;
List<Transaction> transactions = statement.Transactions.Where(t => t.Date < filter.BeginDate?.Date.AddMonths(1)).ToList();
foreach (var expense in budget.Model.Expenses.Where(e => e.Bucket is BillToPayExpenseBucket))
{
if (overspendingSummary.ContainsKey(expense.Bucket))
{
continue;
}
var bucketBalance = expense.Amount +
transactions.Where(t => t.BudgetBucket == expense.Bucket).Sum(t => t.Amount);
overspendingSummary.Add(expense.Bucket, bucketBalance);
if (bucketBalance < -Tolerance)
{
warnings++;
}
}
return warnings;
}
}