public void ForwardNextStage(Model.Contracts.ChangesApprovalWorkflow newWorkflow, Model.ChangeWorkflowStage nextStage)
        {
            newWorkflow.IsFinished = false;
            var forwardNext = changeWorkflowRepository.Insert(newWorkflow.AutoMapObject <Model.Contracts.ChangesApprovalWorkflow, DB.ChangeApprovalWorkflow>());
            var stageRole   = nextStage.RoleId;

            if (stageRole != null)
            {
                var roleUsers = CommonRoutines.GetRoleUsers((int)stageRole, usersAccountsRepository);
                //send notifications.
                //Notifications.Notification.Email(roleUsers.ToList(), Notifications.Config.NotificationObjectType.LeaseContractWorkflowApproval, newWorkflow);
                //Notifications.Notification.System(roleUsers.ToList(), Notifications.Config.NotificationObjectType.LeaseContractWorkflowApproval, (HttpContext.Current.User as PmcsUserPrincipal).UserId, "/Contracts/LeaseContracts", newWorkflow);
            }
        }
        public Model.Contracts.ChangesApprovalWorkflow BeginWorkflowProcess(Model.Contracts.ChangesApprovalWorkflow workflowApproval, Model.ChangeWorkflowStage firstStage)
        {
            workflowApproval.IsFinished = false;
            var approval  = changeWorkflowRepository.Insert(workflowApproval.AutoMapObject <Model.Contracts.ChangesApprovalWorkflow, DB.ChangeApprovalWorkflow>());
            var stageRole = firstStage.RoleId;

            if (stageRole != null)
            {
                var roleUsers = CommonRoutines.GetRoleUsers((int)stageRole, usersAccountsRepository);
                // send notifications.
                Notifications.Notification.Email <Model.Contracts.ChangesApprovalWorkflow>(roleUsers.ToList(), Notifications.Config.NotificationObjectType.BeginInvoiceWorkflow, approval.AutoMapObject <DB.ChangeApprovalWorkflow, pmcs.Model.Contracts.ChangesApprovalWorkflow>());
                Notifications.Notification.System <Model.Contracts.ChangesApprovalWorkflow>(roleUsers.ToList(), Notifications.Config.NotificationObjectType.BeginInvoiceWorkflow, (HttpContext.Current.User as PmcsUserPrincipal).UserId, "/Contracts/LeaseContracts", approval.AutoMapObject <DB.ChangeApprovalWorkflow, pmcs.Model.Contracts.ChangesApprovalWorkflow>());
            }
            return(approval.AutoMapObject <DB.ChangeApprovalWorkflow, Model.Contracts.ChangesApprovalWorkflow>());
        }