public override void ForwardNextStage(Model.Contracts.LeasePaymentTransactionApprovalWorkflow newWorkflow, Model.WorkflowStage nextStage) { newWorkflow.IsFinished = false; var forwardNext = leasePaymentTransactionApprovalWorkflowRepository.Insert(newWorkflow.AutoMapObject <Model.Contracts.LeasePaymentTransactionApprovalWorkflow, DB.LeasePaymentTransactionApprovalWorkflow>()); var stageRole = nextStage.RoleId; if (stageRole != null) { var roleUsers = CommonRoutines.GetRoleUsers((int)stageRole, usersAccountsRepository); //send notifications. //Notifications.Notification.Email(roleUsers.ToList(), Notifications.Config.NotificationObjectType.LeaseContractWorkflowAction, newWorkflow); Notifications.Notification.System(roleUsers.ToList(), Notifications.Config.NotificationObjectType.LeaseContractWorkflowAction, (HttpContext.Current.User as PmcsUserPrincipal).UserId, "/Contracts/LeaseContracts", newWorkflow); } }
public abstract TWokflowApproval BeginWorkflowProcess(TWokflowApproval wokflowApproval, Model.WorkflowStage firstStage);
// Cases : // 1) Add lease payment => // * Get first stage users. // * Send notifications. // * Add new record in LeasePaymentTransactionApprovalWorkflow table. // 2) Some action has been done at some stage in the workflow : // * Update the current workflow record with the action taken. // * Get Next stage Users. // * Send notifications. // * Add new record in LeasePaymentTransactionApprovalWorkflow table for the next stage (if any). // * if the workflow stages finished close the transaction and notify all users. public override Model.Contracts.LeasePaymentTransactionApprovalWorkflow BeginWorkflowProcess(Model.Contracts.LeasePaymentTransactionApprovalWorkflow wokflowApproval, Model.WorkflowStage firstStage) { wokflowApproval.IsFinished = false; var approval = leasePaymentTransactionApprovalWorkflowRepository.Insert(wokflowApproval.AutoMapObject <Model.Contracts.LeasePaymentTransactionApprovalWorkflow, DB.LeasePaymentTransactionApprovalWorkflow>()); var stageRole = firstStage.RoleId; if (stageRole != null) { var roleUsers = CommonRoutines.GetRoleUsers((int)stageRole, usersAccountsRepository); //send notifications. Notifications.Notification.Email <Model.Contracts.LeasePaymentTransactionApprovalWorkflow>(roleUsers.ToList(), Notifications.Config.NotificationObjectType.BeginLeaseWorkflow, approval.AutoMapObject <DB.LeasePaymentTransactionApprovalWorkflow, pmcs.Model.Contracts.LeasePaymentTransactionApprovalWorkflow>()); Notifications.Notification.System <Model.Contracts.LeasePaymentTransactionApprovalWorkflow>(roleUsers.ToList(), Notifications.Config.NotificationObjectType.BeginLeaseWorkflow, (HttpContext.Current.User as PmcsUserPrincipal).UserId, "/Contracts/LeaseContracts", approval.AutoMapObject <DB.LeasePaymentTransactionApprovalWorkflow, pmcs.Model.Contracts.LeasePaymentTransactionApprovalWorkflow>()); } return(approval.AutoMapObject <DB.LeasePaymentTransactionApprovalWorkflow, Model.Contracts.LeasePaymentTransactionApprovalWorkflow>()); }
public abstract void ForwardNextStage(TWokflowApproval newWorkflow, Model.WorkflowStage nextStage);