// Replaced by stored precedure version MoveWorkflowAll above due to performance issue using Entity Framework for bulk db operation public RevenueApprovalStatus?BacktrackWorkflowAll(DateTime month, string propertyCode, RevenueApprovalStatus state) { try { var provider = new ExpenseProvider(_context); DateTime startDate = new DateTime(month.Year, month.Month, 1); DateTime endDate = new DateTime(month.Year, month.Month, DateTime.DaysInMonth(month.Year, month.Month)); var expenses = provider.RetrieveCombinedExpenses(startDate, endDate, propertyCode); var prevState = PrevState(state); if (expenses != null && prevState != null) { foreach (var expense in expenses) { if (expense.ApprovalStatus >= prevState) { expense.ApprovalStatus = prevState.Value; RetrackWorkflowSignature(expense, state); provider.Update(expense.ExpenseId, expense); } } provider.Commit(); return(prevState); } } catch { throw; } return(null); }