/// <summary> /// 驳回 /// </summary> /// <param name="stepApprovaObj">当前节点信息</param> /// <param name="recordsobj">当前审核人信息</param> /// <param name="msg"></param> /// <returns></returns> private bool Reject(WorkflowApprovalStep stepApprovaObj, WorkflowApprovalRecords recordsobj, ref string msg) { bool status = false; //添加当前节点审核的操作记录 WorkflowApprovalRecords objRecords = new WorkflowApprovalRecords { DataType = 2, AuditidTime = DateTime.Now, Memo = "审批人 " + recordsobj.AuditidUserName + " 驳回了申请", WorkflowApprovalStepId = stepApprovaObj.Id }; status = _workflowApprovalRecordsRepository.Add(objRecords) > 0 ? true : false; //修改当前节点的节点状态和人员审核状态 status = _workflowApprovalStepRepository.Update(s => s.Id == stepApprovaObj.Id, s => new WorkflowApprovalStep { AuditNo = false }); _workflowApprovalRecordsRepository.Update(s => s.WorkflowApprovalStepId == stepApprovaObj.Id && s.DataType == 1, s => new WorkflowApprovalRecords { AudioStatus = AudioStatus.UnApprovalInfo, AuditidTime = null }); //修改上个节点的节点状态和人员审核状态 var prevPassNo = _workflowApprovalStepRepository.Entites.Where(s => s.PassType != PassType.Copy && s.WorkflowBusinessId == stepApprovaObj.WorkflowBusinessId && s.PassNo < stepApprovaObj.PassNo).OrderByDescending(s => s.PassNo).FirstOrDefault(); status = _workflowApprovalStepRepository.Update(s => s.Id == prevPassNo.Id, s => new WorkflowApprovalStep { AuditNo = true }); status = _workflowApprovalRecordsRepository.Update(s => s.WorkflowApprovalStepId == prevPassNo.Id && s.DataType == 1, s => new WorkflowApprovalRecords { AudioStatus = AudioStatus.WaitAgree, AuditidTime = null }); return(status); }
protected void Setup() { var options = new DbContextOptionsBuilder <WorkflowDataContext>() .UseInMemoryDatabase(databaseName: "workflow-tets") .Options; var mockHttpContextAccessor = new Mock <IHttpContextAccessor>(); var user = new ClaimsPrincipal(new ClaimsIdentity(new Claim[] { new Claim(ClaimTypes.Name, "admin"), new Claim(ClaimTypes.NameIdentifier, "1"), }, "mock")); var context = new DefaultHttpContext { User = user }; mockHttpContextAccessor.Setup(_ => _.HttpContext).Returns(context); Context = new WorkflowDataContext(options, mockHttpContextAccessor.Object); waitingApprovalStatus = new WorkflowStatus { Name = "Waiting Approval" }; approvedStatus = new WorkflowStatus { Name = "Approved" }; rejectedStatus = new WorkflowStatus { Name = "Reject" }; Type = new WorkflowType { Name = "Workflow", IsActive = true }; var approvedStep = new WorkflowApprovalStep { IsActive = true, WorkflowStatus = approvedStatus }; var rejectedStep = new WorkflowApprovalStep { IsActive = true, WorkflowStatus = rejectedStatus }; var firstStep = new WorkflowApprovalStep { NextStepApproved = approvedStep, NextStepRejected = rejectedStep, WorkflowStatus = waitingApprovalStatus, IsActive = true, IsFirstStep = true }; Type.Steps.Add(firstStep); Type.Steps.Add(approvedStep); Type.Steps.Add(rejectedStep); Context.WorkflowTypes.Add(Type); Context.SaveChanges(); mockAuthService = new Mock <IAuthService>(); mockAuthService.Setup(_ => _.HasRoles(It.IsAny <string>(), It.IsAny <IEnumerable <int> >())).Returns(true); var cache = new MemoryCache(new MemoryCacheOptions()); workflowCache = new WorkflowCache(cache, Context); eventBus = new EventBus(new MockServiceProvider()); }