public ActionResult MountValve_System(string hsID, int valveID, string returnURL, string noFilter, string adrFilter)
 {
     //прореверим, что пользователь отметил в окне нужный ТП
     if (hsID==null)
     {
         return RedirectToAction("MountValveHSFilter", "Infrastructure", new { returnURL = returnURL, valveID = valveID, HS_No_Filter = noFilter, HS_Adress_Filter = adrFilter, modelError = "Не выбран объект" });
     }
     //если ТП выбран, то переходим на шаг 2
     MountValve_System_VM model = new MountValve_System_VM
     {
         HeatStation = repositorie.HeatStations.SingleOrDefault(hs => hs.HS_ID == hsID),
         Valve = repositorie.Valves.SingleOrDefault(v => v.V_ID == valveID),
         ReturnURL = returnURL,
         AvaliableSystems = repositorie.Asystems.Where(s => s.AS_Heat_Station == hsID && s.ASystem_Type.AST_NeedValve == 1 && s.AS_Valve == null),
         BusySystems = repositorie.Asystems.Where(s => s.AS_Heat_Station == hsID && s.ASystem_Type.AST_NeedValve == 1 && s.AS_Valve != null)
     };
     return View(model);
 }
        public ActionResult MountValve_Check(string hsID, System.Nullable<int> aSystemID, int valveID, string returnURL)
        {
            ModelState.Clear();
            //проверка, что пользователь отметил нужную систему, и обработка ошибок триггеров сервера
            if (aSystemID == null)
            {
                ModelState.AddModelError("aSystemID", "Не выбрана система");
            }

            if (ModelState.IsValid)
            {
                //проверка успешна
                try
                {
                    ASystem system = repositorie.Asystems.SingleOrDefault(s => s.AS_ID == aSystemID);
                    system.AS_Valve = valveID;
                    repositorie.SaveASystem(system);
                }
                catch (Exception e)
                {
                    ModelState.AddModelError("err", e.Message);
                }
            }

            if (ModelState.IsValid)
            {
                //операции успешны
                return Redirect(returnURL);
            }
            else
            {
                //неудача, возвращаемся на шаг 2 и отображаем ошибки модели
                MountValve_System_VM model = new MountValve_System_VM
                {
                    HeatStation = repositorie.HeatStations.SingleOrDefault(hs => hs.HS_ID == hsID),
                    Valve = repositorie.Valves.SingleOrDefault(v => v.V_ID == valveID),
                    ReturnURL = returnURL,
                    AvaliableSystems = repositorie.Asystems.Where(s => s.AS_Heat_Station == hsID && s.ASystem_Type.AST_NeedValve == 1 && s.AS_Valve == null),
                    BusySystems = repositorie.Asystems.Where(s => s.AS_Heat_Station == hsID && s.ASystem_Type.AST_NeedValve == 1 && s.AS_Valve != null)
                };
                return View("MountValve_System", model);
            }
        }