public ActionResult ASList(string HSNo,string returnURLParam) { Heat_Station HS = repositorie.HeatStations.FirstOrDefault(hs=>hs.HS_ID==HSNo); ASListVM model = new ASListVM(repositorie.AStypes,HS); model.ReturnURL = returnURLParam; return View(model); }
public ActionResult SaveHSASList(ASListVM model) { //запоминаем в переменной текущее состояние автоматизированных систем IQueryable<ASystem> current_HS_systems = repositorie.Asystems.Where(sys => sys.AS_Heat_Station == model.HS_No); //циклом проходим по всем системам модели и выявляем какие нужно внести изменения в БД foreach (var sysType in model.ASTypesList) { if (sysType.HShasType) //очередная система отмечена галочкой { //проверим есть ли уже система в перечне систем ТП, если нет ,то добавим if (current_HS_systems.All(s => s.AS_type != sysType.shortName)) { ASystem newSys = new ASystem { AS_Heat_Station = model.HS_No, AS_type = sysType.shortName }; repositorie.SaveASystem(newSys); } } else // очередная система НЕ отмечена галочкой { //проверим, если система существует в БД, то удалим ее ASystem toDelete = current_HS_systems.FirstOrDefault(s => s.AS_type == sysType.shortName); if (toDelete != null) { repositorie.RemoveASystem(toDelete); } } } //готово, возвращаемся на окно из которого сделан вызов редактирования систем return Redirect(model.ReturnURL); }