public DB.ChangeApprovalWorkflow ChangeWorkflowStageAction(int workflowId, int action, string remarks, string userName) { var orginalWorkflow = changeWorkflowRepository.GetById(w => w.Id == workflowId); var editWorkflow = changeWorkflowRepository.GetById(w => w.Id == workflowId); editWorkflow.OwnerName = userName; editWorkflow.ProcessedDate = DateTime.Now; editWorkflow.Status = action; editWorkflow.Remarks = remarks; editWorkflow.IsFinished = true; changeWorkflowRepository.Update(orginalWorkflow, editWorkflow); var stage = new ChangeWorkflowStagesRepository(new PmcsDbContext()).GetById(s => s.StageId == orginalWorkflow.StageId); if (stage != null) { var roleId = stage.RoleId; if (roleId != null) { var roleUsers = CommonRoutines.GetRoleUsers((int)roleId, usersAccountsRepository); //Notifications.Notification.Email(roleUsers.ToList(), Notifications.Config.NotificationObjectType.LeaseContractWorkflowApproval, editWorkflow); //Notifications.Notification.System(roleUsers.ToList(), Notifications.Config.NotificationObjectType.LeaseContractWorkflowApproval, (HttpContext.Current.User as PmcsUserPrincipal).UserId, "/Contracts/LeaseContracts", editWorkflow); } } return(editWorkflow); }
public ChangeWorkflowService(ChangeWorkflowStagesRepository workflowStagesRepository, WorkflowActionTypesRepository workflowActionTypesRepository) { this.workflowStagesRepository = workflowStagesRepository; this.workflowActionTypesRepository = workflowActionTypesRepository; }