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);
        }