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;
 }