public void ForwardNextStage(Model.Contracts.InvoicesApprovalWorkflow newWorkflow, Model.InvoiceWorkflowStage nextStage)
        {
            newWorkflow.IsFinished = false;
            var forwardNext = invoicesWorkflowRepository.Insert(newWorkflow.AutoMapObject <Model.Contracts.InvoicesApprovalWorkflow, DB.InvoicesApprovalWorkflow>());
            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.InvoiceWorkflowAction, (HttpContext.Current.User as PmcsUserPrincipal).UserId, "/Contracts/LeaseContracts", newWorkflow);
            }
        }
        public Model.Contracts.InvoicesApprovalWorkflow BeginWorkflowProcess(Model.Contracts.InvoicesApprovalWorkflow workflowApproval, Model.InvoiceWorkflowStage firstStage)
        {
            workflowApproval.IsFinished = false;
            var approval  = invoicesWorkflowRepository.Insert(workflowApproval.AutoMapObject <Model.Contracts.InvoicesApprovalWorkflow, DB.InvoicesApprovalWorkflow>());
            var stageRole = firstStage.RoleId;

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