public DB.InvoicesApprovalWorkflow ChangeWorkflowStageAction(int workflowId, int action, string remarks, string userName) { var orginalWorkflow = invoicesWorkflowRepository.GetById(w => w.Id == workflowId); var editWorkflow = invoicesWorkflowRepository.GetById(w => w.Id == workflowId); editWorkflow.OwnerName = userName; editWorkflow.ProcessedDate = DateTime.Now; editWorkflow.Status = action; editWorkflow.Remarks = remarks; editWorkflow.IsFinished = true; invoicesWorkflowRepository.Update(orginalWorkflow, editWorkflow); var stage = new InvoicesWorkflowStagesRepository(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.InvoiceWorkflowAction, editWorkflow.AutoMapObject<DB.InvoicesApprovalWorkflow, pmcs.Model.Contracts.InvoicesApprovalWorkflow>()); Notifications.Notification.System(roleUsers.ToList(), Notifications.Config.NotificationObjectType.InvoiceWorkflowAction, (HttpContext.Current.User as PmcsUserPrincipal).UserId, "/Contracts/LeaseContracts", editWorkflow.AutoMapObject <DB.InvoicesApprovalWorkflow, pmcs.Model.Contracts.InvoicesApprovalWorkflow>()); } } return(editWorkflow); }
public InvoicesService(InvoicesRepository invoicesRepository, InvoicesWorkflowStagesRepository workflowStagesRepository, InvoicesApprovalWorkflowRepository invoicesApprovalWorkflowRepository) { this.invoicesRepository = invoicesRepository; this.workflowStagesRepository = workflowStagesRepository; this.invoicesApprovalWorkflowRepository = invoicesApprovalWorkflowRepository; }
public InvoiceWorkflowService(InvoicesWorkflowStagesRepository workflowStagesRepository, WorkflowActionTypesRepository workflowActionTypesRepository) { this.workflowStagesRepository = workflowStagesRepository; this.workflowActionTypesRepository = workflowActionTypesRepository; }