// Replaced by stored precedure version MoveWorkflowAll above due to performance issue using Entity Framework for bulk db operation public RevenueApprovalStatus?BacktrackWorkflowAll(DateTime month, RevenueApprovalStatus state) { try { // Too slow to use Entity Framework for bulk upload var provider = new ResolutionRevenueProvider(_context); var resolutions = provider.Retrieve(month, string.Empty); var prevState = PrevState(state); if (resolutions != null && prevState != null) { var dataProvider = new ResolutionProvider(_context); foreach (var viewModel in resolutions) { //BacktrackWorkflow(viewModel.ResolutionId, state); var entity = dataProvider.Retrieve(viewModel.ResolutionId); if (entity != null) { entity.ApprovalStatus = prevState.Value; RetrackWorkflowSignature(entity, state); dataProvider.Update(entity.ResolutionId, entity); } } dataProvider.Commit(); return(prevState); } } catch { throw; } return(null); }
// Replaced by stored precedure version MoveWorkflowAll above due to performance issue using Entity Framework for bulk db operation public RevenueApprovalStatus?MoveWorkflowAll(DateTime month, RevenueApprovalStatus state) { try { // Too slow using Entity Framework for bulk upload var provider = new ResolutionRevenueProvider(_context); List <ResolutionRevenueModel> resolutions = provider.Retrieve(month, string.Empty); var nextState = NextState(state); if (resolutions != null && nextState != null) { var dataProvider = new ResolutionProvider(_context); foreach (var viewModel in resolutions) { //MoveWorkflow(viewModel.ResolutionId, state); var entity = dataProvider.Retrieve(viewModel.ResolutionId); if (entity != null) { entity.ApprovalStatus = state; SetWorkflowSignature(entity, state); dataProvider.Update(entity.ResolutionId, entity); } } dataProvider.Commit(); return(nextState); } } catch { throw; } return(null); }