/// <summary> /// 更新首页的电脑区域 /// </summary> /// <param name="areaId"></param> /// <param name="setting"></param> public void UpateHomePageComputerArea(int areaId, AREA_SETTING setting) { if (setting == AREA_SETTING.ADD) { HomePageMessageManage.UpdateHomePageComputerArea(null, setting); return; } var returnChanges = this.allComputers.Where(com => com.Area.Equals(areaId.ToString())).ToList <StructRealTime>(); if (setting == AREA_SETTING.DELETE) { //修改所有数组和改变过的字典 foreach (StructRealTime changeCom in returnChanges) { int index = this.allComputers.FindIndex(com => com.Computerid == changeCom.Computerid); StructRealTime.Builder newCom = new StructRealTime.Builder(this.allComputers[index]); newCom.Area = "0"; this.allComputers[index] = newCom.Build(); } var changeds = this.changeComDict.Values.Where(com => com.Area.Equals(areaId.ToString())).ToList <StructRealTime>(); foreach (StructRealTime changed in changeds) { StructRealTime.Builder newChanged = new StructRealTime.Builder(changed); newChanged.Area = "0"; this.changeComDict[newChanged.Computerid] = newChanged.Build(); } } HomePageMessageManage.UpdateHomePageComputerArea(returnChanges, setting); }
/// <summary> /// 更新电脑区域信息 /// </summary> /// <param name="changes">需要改变的电脑</param> /// <param name="setting">设置的类型</param> public static void UpdateHomePageComputerArea(List <StructRealTime> changes, AREA_SETTING setting) { if (Manage().RefreshAreaComBox != null) { Manage().RefreshAreaComBox(); } if (setting == AREA_SETTING.ADD) { return; } //先不判断是否有过滤 foreach (StructRealTime change in changes) { StructRealTime ori = Manage().computers.Where(com => com.Computerid == change.Computerid).First(); int index = Manage().computers.IndexOf(ori); switch (setting) { //删除;将Area 设为-1,防止之后添加的code与其相同。将自动归入其下 case AREA_SETTING.DELETE: { StructRealTime.Builder newCom = new StructRealTime.Builder(ori); newCom.Area = "0"; Manage().computers[index] = newCom.Build(); if (Manage().UpdateComputerAreaEvent != null && Manage().s_areaId < 0) { Manage().UpdateComputerAreaEvent(newCom.Build()); } } break; //更改名字。不变原数据只做刷新界面 case AREA_SETTING.UPDATE: { if (Manage().UpdateComputerAreaEvent != null) { Manage().UpdateComputerAreaEvent(ori); } } break; //点击完保存 case AREA_SETTING.NONE: { StructRealTime.Builder newCom = new StructRealTime.Builder(ori); newCom.Area = change.Area; Manage().computers[index] = newCom.Build(); if (Manage().UpdateComputerAreaEvent != null && Manage().s_areaId < 0) { Manage().UpdateComputerAreaEvent(newCom.Build()); } } break; default: break; } } //电脑视图 if (Manage().UpdateAreaEvent != null) { Manage().UpdateAreaEvent(); if (Manage().s_areaId >= 0) { //需要更新一下 GetFilterComputers(Manage().s_status, Manage().s_areaId, Manage().s_key); } } //列表视图(直接过滤一遍) else if (Manage().s_areaId >= 0 && setting != AREA_SETTING.UPDATE) { GetFilterComputers(Manage().s_status, Manage().s_areaId, Manage().s_key); } }