public ActionResult UpdateTrial([DataSourceRequest] DataSourceRequest request, Trial trial) { if (trial != null && ModelState.IsValid) { DataProvider.Update(trial); } return Json(new[] { trial }.ToDataSourceResult(request, ModelState)); }
public ActionResult Edit(string id, int? versionId, TrialTab? tab) { ViewBag.Tab = tab; Trial trial; if (string.IsNullOrEmpty(id)) { ViewBag.IsNew = true; trial = new Trial { Version = 1 }; //ViewBag.Versions = new[] { new { Id = 1, Name = "1 (Новая)" } }; ViewBag.Title = "Создание исследования"; } else { trial = DataProvider.GetItem(new TrialDataFilter { Code = id }); trial.Version = versionId.HasValue ? versionId.Value : 1; if (trial == null) throw new ApplicationException("Исследование с кодом '" + id + "' не найдено"); ViewBag.IsNew = false; //ViewBag.Versions = DataProvider.GetList(new TrialVersionDataFilter()).Select(v => new { Id = v.Id, Name = string.Format("{0} ({1})", v.Id, v.VersionStatus) }); ViewBag.Versions = new[] { new { Id = 1, Name = "1 (Новая)" } }; ViewBag.Title = "Описание исследования"; } switch (tab) { case TrialTab.Main: case null: ViewBag.Statuses = EnumExtensions.GetDictionary(typeof(TrialStatus)).Where(x => x.Key >= (int)trial.Status); var users = DataProvider.GetList(new UserDataFilter()); ViewBag.Users = users; ViewBag.AdministratorLogin_Data = new SelectList(users, "Login", "FullName"); ViewBag.Hospitals = DataProvider.GetList(new HospitalDataFilter()); break; case TrialTab.Visits: ViewBag.Procedures = DataProvider.GetList(new ProcedureDataFilter()); ViewBag.Visits = DataProvider .GetList(new TrialVisitDataFilter { TrialCode = trial.Code, TrialVersion = trial.Version }) .OrderBy(v => v.Days); ViewBag.ProcedureGroups = DataProvider.GetList(new ProcedureGroupDataFilter()); break; case TrialTab.Roles: ViewBag.Procedures = DataProvider.GetList(new ProcedureDataFilter()); ViewBag.TrialCenters = DataProvider.GetList(new TrialCenterDataFilter { TrialCode = id }); ViewBag.Roles = DataProvider.GetList(new RoleDataFilter()); break; } return View(trial); }