public PartialViewResult ShowCreateRegistrationStep() { var step = new EXP_RegistrationExpSteps(); ViewBag.IsUpdate = false; return(PartialView("CreateUpdateRegistrationStepPartial", step)); }
public JsonResult CreateRegistrationStep(EXP_RegistrationExpSteps step, bool needParallelWithNext, Guid?prevStepId, Guid registrationTypeId, bool isUpdate) { int priority = 1; if (prevStepId != null) { var prevStep = db.EXP_RegistrationExpSteps.First(x => x.Id == prevStepId); var prevPriority = prevStep.Priority; priority = prevPriority + 1; var moreThenPrevPrioritySteps = db.EXP_RegistrationExpSteps.Where( x => x.RegistrationId == registrationTypeId && x.Priority > prevPriority); if (moreThenPrevPrioritySteps.Any() && !needParallelWithNext) { var nextMinPriority = moreThenPrevPrioritySteps.Select(x => x.Priority).Min(); var diff = nextMinPriority - prevPriority; if (diff == 1) { moreThenPrevPrioritySteps.Each(x => x.Priority++); } } else { if (!moreThenPrevPrioritySteps.Any() && needParallelWithNext) { priority = prevPriority; } } } else { if (!needParallelWithNext) { db.EXP_RegistrationExpSteps.Where(x => x.RegistrationId == registrationTypeId).Each(x => x.Priority++); } } if (!isUpdate) { step.Id = Guid.NewGuid(); step.Priority = priority; step.RegistrationId = registrationTypeId; db.EXP_RegistrationExpSteps.Add(step); } else { var curStep = db.EXP_RegistrationExpSteps.First(x => x.Id == step.Id); curStep.Priority = priority; curStep.Duration = step.Duration; } db.SaveChanges(); return(Json(new { success = true }, JsonRequestBehavior.AllowGet)); }
public ActionResult GetNextExpRegStepName(Guid?id, Guid regId) { EXP_RegistrationExpSteps step = null; if (id != null) { var prevStep = db.EXP_RegistrationExpSteps.FirstOrDefault(x => x.Id == id); if (prevStep != null) { step = db.EXP_RegistrationExpSteps.Where(x => x.RegistrationId == regId && x.Id != id && x.Priority > prevStep.Priority) .OrderBy(x => x.Priority) .FirstOrDefault(); } } else { step = db.EXP_RegistrationExpSteps.Where(x => x.RegistrationId == regId).OrderBy(x => x.Priority).FirstOrDefault(); } var stepName = step != null ? step.Name : ""; return(Json(new { NextStepName = stepName })); }
public JsonResult CreateRegistrationStep(EXP_RegistrationExpSteps step, bool needParallelWithNext, Guid?prevStepId, Guid registrationTypeId, bool isUpdate) { int priority = 1; if (prevStepId != null) { var prevStep = db.EXP_RegistrationExpSteps.First(x => x.Id == prevStepId); var prevPriority = prevStep.Priority; priority = prevPriority + 1; var moreThenPrevPrioritySteps = db.EXP_RegistrationExpSteps.Where( x => x.RegistrationId == registrationTypeId && x.Priority > prevPriority); if (moreThenPrevPrioritySteps.Any() && !needParallelWithNext) { var nextMinPriority = moreThenPrevPrioritySteps.Select(x => x.Priority).Min(); var diff = nextMinPriority - prevPriority; if (diff == 1) { moreThenPrevPrioritySteps.Each(x => x.Priority++); } } else { if (!moreThenPrevPrioritySteps.Any() && needParallelWithNext) { priority = prevPriority; } } } else { if (!needParallelWithNext) { db.EXP_RegistrationExpSteps.Where(x => x.RegistrationId == registrationTypeId).Each(x => x.Priority++); } } if (db.EXP_RegistrationExpSteps.Count(e => e.RegistrationId == registrationTypeId && e.RefId == step.RefId) > 1) { return(Json(new { success = false, message = "Для данного типа регистрации уже задан этап." }, JsonRequestBehavior.AllowGet)); } if (!isUpdate) { step.Id = Guid.NewGuid(); step.Priority = priority; step.RegistrationId = registrationTypeId; step.Name = db.EXP_DIC_Stage.FirstOrDefault(e => e.Id == step.RefId).NameRu; step.Executors.AddRange(db.Employees.Where(e => step.ExecutorsIds.Contains(e.Id))); db.EXP_RegistrationExpSteps.Add(step); } else { var curStep = db.EXP_RegistrationExpSteps.First(x => x.Id == step.Id); curStep.Priority = priority; curStep.Duration = step.Duration; curStep.SupervisingEmployeeId = step.SupervisingEmployeeId; curStep.Executors.Clear(); db.SaveChanges(); curStep.Executors.AddRange(db.Employees.Where(e => step.ExecutorsIds.Contains(e.Id))); } db.SaveChanges(); return(Json(new { success = true }, JsonRequestBehavior.AllowGet)); }