void solveWorkflowCompleted(WorkflowApplicationCompletedEventArgs e) { MyWorkflowInstance.removeSolveWorkflowApplication(e.InstanceId.ToString()); CrowdTask crowdTask = new CrowdTask(); CrowdTaskService crowdTaskService = new CrowdTaskService(); crowdTask = crowdTaskService.findCrowdTaskByWorkflowId(e.InstanceId.ToString()); //将当前流程的解决结果写入数据库 int result = crowdTaskService.saveSolveResult(crowdTask, (string)e.Outputs["out_solution"]); /* * * //通过当前解决任务的工作流ID ,获得该工作流的所有同一任务的不同工作流,如果都完成了则开启解决判断过程; * int count = 0; * * ArrayList allSonCrowdTask = crowdTaskService.findAllSonCrowdTaskByParentTaskNameAndTaskDescriptionAndTaskType(crowdTask.taskName, crowdTask.taskDescription,crowdTask.taskType); * * foreach (CrowdTask ct in allSonCrowdTask) * { * WorkflowApplication wa = MyWorkflowInstance.getSolveWorkflowApplication(ct.taskWorkflowId); * if (wa != null) * { * break; * } * else * { * count++; * } * } * if (count == ConstantDefine.solvingNumber) * { * //都已经解决完成,可以开始投票了 * //通过当前获得到的workflowId ,加载解决方案,然后保存在一个list里面,开启投票流程 * * Dictionary<string,SolveResult> solveResutDic = new Dictionary<string,SolveResult>(); * * //得到所有的解决结果 * foreach (CrowdTask ct in allSonCrowdTask) * { * SolveResult sr = crowdTaskService.findSolveResultByWorkflowId(ct.taskWorkflowId); * * solveResutDic.Add(ct.taskWorkflowId,sr); * } * if(solveResutDic.Count!=0) * { * //开启5个解决投票流程 工作流实例 * for (int i = 0; i < ConstantDefine.solveVotingNumber; i++) * { * StartSubProcess ssp = new StartSubProcess(); * ssp.startSolveVoteProcess(solveResutDic); * } * } * * } */ //如果所有的解决任务完成了。开启投票 if (MyWorkflowInstance.getSolveWorkflowApplications().Count == 0) { ArrayList allSolveCompeletedCrowdTask = crowdTaskService.findAllSolveCompeletedCrowdTaskByMainTaskId(crowdTask.mainTaskId); //得到所有的解决结果 foreach (SolveResult sr in allSolveCompeletedCrowdTask) { //开启投票过程 Dictionary <string, SolveResult> solveResutDic = new Dictionary <string, SolveResult>(); ArrayList abc = crowdTaskService.finSolveResultByMainTaskIdAndTaskName(crowdTask.mainTaskId, sr.taskName); foreach (SolveResult sdr in abc) { solveResutDic.Add(sdr.taskWorkflowId, sdr); } if (solveResutDic.Count != 0) { //开启5个解决投票流程 工作流实例 for (int i = 0; i < ConstantDefine.solveVotingNumber; i++) { StartSubProcess ssp = new StartSubProcess(); ssp.startSolveVoteProcess(solveResutDic); } } } MyWorkflowInstance.getWorkflowApplication(crowdTask.mainTaskId).ResumeBookmark(BookmarkName.Solving, null); } }
void solveWorkflowCompleted(WorkflowApplicationCompletedEventArgs e) { MyWorkflowInstance.removeSolveWorkflowApplication(e.InstanceId.ToString()); CrowdTask crowdTask = new CrowdTask(); CrowdTaskService crowdTaskService = new CrowdTaskService(); crowdTask = crowdTaskService.findCrowdTaskByWorkflowId(e.InstanceId.ToString()); //将当前流程的解决结果写入数据库 int result = crowdTaskService.saveSolveResult(crowdTask, (string)e.Outputs["out_solution"]); /* //通过当前解决任务的工作流ID ,获得该工作流的所有同一任务的不同工作流,如果都完成了则开启解决判断过程; int count = 0; ArrayList allSonCrowdTask = crowdTaskService.findAllSonCrowdTaskByParentTaskNameAndTaskDescriptionAndTaskType(crowdTask.taskName, crowdTask.taskDescription,crowdTask.taskType); foreach (CrowdTask ct in allSonCrowdTask) { WorkflowApplication wa = MyWorkflowInstance.getSolveWorkflowApplication(ct.taskWorkflowId); if (wa != null) { break; } else { count++; } } if (count == ConstantDefine.solvingNumber) { //都已经解决完成,可以开始投票了 //通过当前获得到的workflowId ,加载解决方案,然后保存在一个list里面,开启投票流程 Dictionary<string,SolveResult> solveResutDic = new Dictionary<string,SolveResult>(); //得到所有的解决结果 foreach (CrowdTask ct in allSonCrowdTask) { SolveResult sr = crowdTaskService.findSolveResultByWorkflowId(ct.taskWorkflowId); solveResutDic.Add(ct.taskWorkflowId,sr); } if(solveResutDic.Count!=0) { //开启5个解决投票流程 工作流实例 for (int i = 0; i < ConstantDefine.solveVotingNumber; i++) { StartSubProcess ssp = new StartSubProcess(); ssp.startSolveVoteProcess(solveResutDic); } } } */ //如果所有的解决任务完成了。开启投票 if (MyWorkflowInstance.getSolveWorkflowApplications().Count == 0) { ArrayList allSolveCompeletedCrowdTask = crowdTaskService.findAllSolveCompeletedCrowdTaskByMainTaskId(crowdTask.mainTaskId); //得到所有的解决结果 foreach (SolveResult sr in allSolveCompeletedCrowdTask) { //开启投票过程 Dictionary<string, SolveResult> solveResutDic = new Dictionary<string, SolveResult>(); ArrayList abc = crowdTaskService.finSolveResultByMainTaskIdAndTaskName(crowdTask.mainTaskId, sr.taskName); foreach (SolveResult sdr in abc) { solveResutDic.Add(sdr.taskWorkflowId, sdr); } if (solveResutDic.Count != 0) { //开启5个解决投票流程 工作流实例 for (int i = 0; i < ConstantDefine.solveVotingNumber; i++) { StartSubProcess ssp = new StartSubProcess(); ssp.startSolveVoteProcess(solveResutDic); } } } MyWorkflowInstance.getWorkflowApplication(crowdTask.mainTaskId).ResumeBookmark(BookmarkName.Solving,null); } }