public ActionResult AddModule(List <moduleCondition> model) { //добавить фунцию для отправки данных и посмотреть закрывается ли диалог окно List <int> connectedBefore = connectedModules.Select(m => m.idModule).ToList(); List <int> connectedAfter = model.Where(m => m.isConnected == true).Select(m => m.idModule).ToList(); List <int> connectNewModuleHelp = connectedBefore.Union(connectedAfter).ToList();//получим ID модулей, которые являются подключенными List <int> connectNewModule = connectNewModuleHelp.Except(connectedBefore).ToList(); if (connectNewModule.Count() != 0) //если появились модули, которых нет в глобальном статическом списке, то надо их туда добавить { List <moduleCondition> connectedAfterModules = model.Where(m => connectNewModule.Contains(m.idModule)).ToList(); foreach (moduleCondition item in connectedAfterModules) { connectedModules.Add(item); } } //поменяем состояние модуля на подключено foreach (var item in connectedAfter) { moduleCondition module = connectedModules.Where(m => m.idModule == item).FirstOrDefault(); module.isConnected = true; } //connectedModules = model; tagConfigurator.AddModule(connectedAfter); List <moduleCondition> ActiveModules = connectedModules.Where(m => m.isConnected == true).ToList(); return(PartialView("ModulesListPartial", ActiveModules)); }
public ActionResult DeleteModule(int id) { moduleCondition module = connectedModules.Find(m => m.idModule == id); module.isConnected = false; tagConfigurator.deleteModule(id); List <moduleCondition> ActiveModules = connectedModules.Where(m => m.isConnected == true).ToList(); return(PartialView("ModulesListPartial", ActiveModules)); }
public ActionResult ChangeModuleStatus(int id, string moduleStatus) { tagConfigurator.ChangeModuleStatus(id, moduleStatus); moduleCondition module = connectedModules.Where(m => m.idModule == id).FirstOrDefault(); module.isRun = moduleStatus; List <moduleCondition> ActiveModules = connectedModules.Where(m => m.isConnected == true).ToList(); return(PartialView("ModulesListPartial", ActiveModules)); }