private void CreateExpenseGroupAsNeeded(SummaryRebalanceTransactionModel model, DateTime transactionDate) { const string RebalanceApprovalNote = "Rebalance"; var provider = new ExpenseProvider(_dbContext); foreach (RebalanceTransactionModel t in model.Transactions) { int id = provider.GetGroupByKey(t.FromProperty, DebitGroupCategory, transactionDate); if (id == 0) { var expense = new Expense { ExpenseDate = transactionDate, Category = DebitGroupCategory, ExpenseAmount = 0, PropertyCode = t.FromProperty, ApprovalStatus = RevenueApprovalStatus.Approved, ApprovedNote = RebalanceApprovalNote, ConfirmationCode = string.Empty, }; provider.CreateExpenseGroup(expense); } id = provider.GetGroupByKey(t.ToProperty, CreditGroupCategory, transactionDate); if (id == 0) { var expense = new Expense { ExpenseDate = transactionDate, Category = CreditGroupCategory, ExpenseAmount = 0, PropertyCode = t.ToProperty, ApprovalStatus = RevenueApprovalStatus.Approved, ApprovedNote = RebalanceApprovalNote, ConfirmationCode = string.Empty, }; provider.CreateExpenseGroup(expense); } } }