示例#1
0
        public JsonResult CompleteStepInRunProcess(int idStep)
        {
            string         IdUser = User.Identity.GetUserId();
            HttpStatusCode status = HttpStatusCode.OK;
            string         message;
            object         response;
            StepRun        runstep = stepService.findsteprun(idStep);

            stepService.changestatustep(runstep.Id, IdUser);
            ProcessRun  processrun = processService.findProcessRun(runstep.idProcess);
            List <Step> liststep   = stepService.findStepsOfProcess(processrun.IdProcess);

            List <TaskProcessRun> listruntask   = taskService.findruntaskofstep(idStep);
            List <TaskProcessRun> listtaskclose = listruntask.Where(x => x.Status1.Name == "Finish").ToList();

            List <Step> nextstep    = new List <Step>();
            StepRun     runnextstep = new StepRun();

            foreach (Step item in liststep)
            {
                if (runstep.NextStep1 == item.Key && item.StartStep == false)
                {
                    nextstep.Add(item);
                }
            }
            if (nextstep != null)
            {
                if (listtaskclose.Count == listruntask.Count)
                {
                    runnextstep = stepService.completestepinrunprocess(processrun.Id, nextstep);
                }
            }
            foreach (Step nexts in nextstep)
            {
                List <TaskProcess> listtasknextstep = taskService.findTaskOfStep(nexts.Id);
                taskService.addlistruntask(listtasknextstep, runnextstep);
            }

            message  = "Created ProcessRun Successfully";
            response = new { message = message, status = status };
            SetFlash(FlashType.success, "Next step success");
            return(Json(response, JsonRequestBehavior.AllowGet));
        }