public async Task <ActionResult> Update(int id, int testprojectId, TestSession model, int[] testagents) { var project = model.Project = await _projRepo.FindAsync(testprojectId); var plan = model.Plan = project.Plans.FirstOrDefault(z => z.Id == model.TestPlanId); if (plan == null) { ModelState.AddModelError("testplan", "no test plan found for this test session"); } else { if (plan.Cases.Count == 0) { ModelState.AddModelError("testplan", "empty test plan for this test session"); } } if (ModelState.IsValid) { _sessionRepo.Modify(model); if (testagents != null) { var queueRepo = _uow.Repository <TestQueue>(); var q = await(from e in queueRepo.Query() where e.Session.Id == model.Id select e).ToListAsync(); q.ForEach(z => queueRepo.Remove(z)); var agents = (from e in _agentRepo.Query() where testagents.Contains(e.Id) select e).ToList().AsReadOnly(); model.SetAgents(agents); } await _uow.CommitAsync(); return(RedirectToAction("Show", new { id, testprojectId })); } SetNav(model); SetViewData(); return(View("edit", model)); }
public async Task <ActionResult> Create(int testprojectId, TestSession model, int[] testagents) { var project = model.Project = await _projRepo.FindAsync(testprojectId); var plan = model.Plan = project.Plans.FirstOrDefault(z => z.Id == model.TestPlanId); if (plan == null) { ModelState.AddModelError("testplan", "no test plan found for this test session"); } else { if (plan.Cases.Count == 0) { ModelState.AddModelError("testplan", "empty test plan for this test session"); } } if (ModelState.IsValid) { if (testagents != null) { var agents = (from e in _agentRepo.Query() where testagents.Contains(e.Id) select e).ToList().AsReadOnly(); model.SetAgents(agents); } project.Sessions.Add(model); await _uow.CommitAsync(); return(RedirectToAction("Show", new { id = model.Id, testprojectId })); } SetNav(model); SetViewData(); return(View("new", model)); }