From f1c3921b08bb22ac6f5db22d620e01d7e8e5c49f Mon Sep 17 00:00:00 2001 From: WJC <wjc@hdlchina.com.cn> Date: 星期一, 30 十二月 2019 13:32:33 +0800 Subject: [PATCH] 2019-12-30-1 --- ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlShardLogic.cs | 357 ++++++++++++++++++++++++++++++++++------------------------- 1 files changed, 207 insertions(+), 150 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlShardLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlShardLogic.cs index ef0bb03..766493a 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlShardLogic.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlShardLogic.cs @@ -39,6 +39,11 @@ m_Current = value; } } + /// <summary> + /// 鍒嗕韩鐨勮澶囨枃浠�(key:璁惧涓婚敭,value:璁惧鏂囦欢) + /// </summary> + private Dictionary<string, string> dicShardDeviceFile = new Dictionary<string, string>(); + #endregion #region 鈻� 鑾峰彇鍒嗕韩鏂囦欢_______________________ @@ -48,13 +53,13 @@ /// </summary> /// <param name="listDistributedMark"></param> /// <returns></returns> - public async Task<List<string>> SetShardFileToLocation(List<string> listDistributedMark) + private async Task<List<string>> SetShardFileToLocation(List<string> listDistributedMark) { if (listDistributedMark.Count == 0) { return new List<string>(); } - ProgressBar.SetMaxValue(listDistributedMark.Count); + int listMarkCount = listDistributedMark.Count; List<string> listFile = new List<string>(); //鏂囦欢澶� @@ -64,8 +69,9 @@ Shared.Common.CommonPage.BackKeyCanClick = false; UserCenterResourse.Option.AppCanSignout = false; - foreach (string keys in listDistributedMark) + for (int i = 0; i < listDistributedMark.Count; i++) { + string keys = listDistributedMark[i]; var dataPra = new { DistributedMark = keys, HouseDistributedMark = Common.Config.Instance.Home.Id, IsOtherAccountControl = Common.Config.Instance.isAdministrator }; var result = await UserCenterLogic.GetResponseDataByRequestHttps("ZigbeeDataShare/GetOneShareData", false, dataPra); if (result == null) @@ -81,7 +87,7 @@ //淇濆瓨鍒版寚瀹氭枃浠跺す涓� Global.WriteFileToDirectoryByBytes(strDir, dataResult.ShareName, dataResult.ShareDataBytes); //璁剧疆杩涘害鍊� - ProgressBar.SetValue(1); + ProgressFormBar.Current.SetValue(i + 1, listMarkCount); } //鍏佽鎸夌郴缁熺殑杩斿洖閿� @@ -220,118 +226,10 @@ /// </summary> public void ClearShardDirectory() { + this.dicShardDeviceFile.Clear(); //鍒涘缓鏂囦欢澶� string strDir = System.IO.Path.Combine(DirNameResourse.LocalMemoryDirectory, DirNameResourse.DownLoadShardDirectory); Global.CreateEmptyDirectory(strDir, true); - } - - #endregion - - #region 鈻� 鑾峰彇鎴愬憳鍏变韩鍒楄〃___________________ - - /// <summary> - /// 浠庢湰鍦拌幏鍙栨垚鍛樼殑鍒嗕韩鍒楄〃 - /// </summary> - /// <param name="memberShardInfo">鎴愬憳鐨勫垎浜暟鎹殑缂撳瓨(璋冪敤杩欎釜鍑芥暟浼氬埛鏂拌繖涓彉閲忕殑淇℃伅)</param> - public void GetMemberShardContentListFromLocal(MemberShardInfoData memberShardInfo) - { - memberShardInfo.dicShardRoom = new Dictionary<string, Common.Room>(); - - var listDeviceFile = new HashSet<string>(); - var listSceneFile = new HashSet<string>(); - - var listFile = this.GetLocalAllShardFile(); - //鍏堝垵濮嬪寲鎴块棿 - foreach (string fileName in listFile) - { - if (fileName.StartsWith("Room_") == true) - { - //鎴块棿鏂囦欢 - var byteData = this.GetShardFileContent(fileName); - if (byteData != null) - { - string valueData = System.Text.Encoding.UTF8.GetString(byteData); - var roomTemp = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.Room>(valueData); - memberShardInfo.dicShardRoom[fileName] = roomTemp; - } - } - else if (fileName == DirNameResourse.ShardFloorFile) - { - //妤煎眰鏂囦欢 - var byteData = this.GetShardFileContent(fileName); - if (byteData != null) - { - string valueData = System.Text.Encoding.UTF8.GetString(byteData); - memberShardInfo.dicShardFloor = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, string>>(valueData); - } - } - else if (fileName.StartsWith("Device_") == true) - { - //璁惧鏂囦欢 - listDeviceFile.Add(fileName); - } - else if (fileName.StartsWith("Scene_") == true) - { - //鍦烘櫙鏂囦欢 - listSceneFile.Add(fileName); - } - } - - //璁剧疆鎴块棿閲岄潰璁惧鐨刄I瀵硅薄(鍥犱负杩欎釜涓滆タ鏄弽搴忓垪鍖栧嚭鏉ョ殑,璁惧UI瀵硅薄鏄笉搴忓垪鍖栧璞�) - foreach (var tempRoom in memberShardInfo.dicShardRoom.Values) - { - //杩樺師璁惧瀵硅薄 - tempRoom.DeviceUIList.Clear(); - foreach (string uiPath in tempRoom.DeviceUIFilePathList) - { - string deviceFile = uiPath.Replace("DeviceUI_", string.Empty); - //杩欎釜璁惧鏂囦欢鍖归厤寰楀埌鎴块棿 - listDeviceFile.Remove(deviceFile); - if (this.IsFileExists(deviceFile) == false) - { - continue; - } - tempRoom.DeviceUIList.Add(Common.LocalDevice.Current.GetDeviceUI(uiPath)); - } - //杩樺師鍦烘櫙瀵硅薄 - tempRoom.SceneUIList.Clear(); - foreach (string uiPath in tempRoom.SceneUIFilePathList) - { - //杩欎釜鍦烘櫙鏂囦欢鍖归厤寰楀埌鎴块棿 - listSceneFile.Remove(uiPath); - var byteData = this.GetShardFileContent(uiPath); - if (byteData == null) - { - continue; - } - string valueData = System.Text.Encoding.UTF8.GetString(byteData); - var tempUi = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.SceneUI>(valueData); - tempRoom.SceneUIList.Add(tempUi); - } - } - //濡傛灉瀛樺湪鍖归厤涓嶄笂鐨勬枃浠� - if (listDeviceFile.Count != 0 || listSceneFile.Count != 0) - { - //鍒涘缓涓�涓复鏃舵埧闂存潵瀛樺偍 - var roomTemp = new Room(); - roomTemp.Id = "Other"; - roomTemp.FloorId = "Other"; - memberShardInfo.dicShardRoom[roomTemp.FileName] = roomTemp; - roomTemp.Name = Language.StringByID(R.MyInternationalizationString.uSharedRoom); - //杩樺師璁惧瀵硅薄 - foreach (string deviceFile in listDeviceFile) - { - roomTemp.DeviceUIList.Add(Common.LocalDevice.Current.GetDeviceUI(deviceFile)); - } - //杩樺師鍦烘櫙瀵硅薄 - foreach (string uiPath in listSceneFile) - { - var byteData = this.GetShardFileContent(uiPath); - string valueData = System.Text.Encoding.UTF8.GetString(byteData); - var tempUi = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.SceneUI>(valueData); - roomTemp.SceneUIList.Add(tempUi); - } - } } #endregion @@ -387,11 +285,9 @@ //浠庝簯绔幏鍙栦笅鏉ユ枃浠� if (listAddMark.Count > 0) { - //寮哄埗鎸囧畾鏂囨湰闄勫姞淇℃伅锛氬叡浜暟鎹悓姝ヤ腑 - string msg = Language.StringByID(R.MyInternationalizationString.uShardDataIsSynchronizing); - //寮�鍚繘搴︽潯 - ProgressBar.Show(msg); - ProgressBar.SetAppendText(msg); + //寮�鍚繘搴︽潯 鍏变韩鏁版嵁鍚屾涓� + ProgressFormBar.Current.Start(); + ProgressFormBar.Current.SetMsg(Language.StringByID(R.MyInternationalizationString.uShardDataIsSynchronizing)); //灏嗗垎浜殑鏁版嵁瀛樺叆鏈湴(鑾峰彇鐨勬槸鏈湴娌℃湁鐨�) this.ClearShardDirectory(); @@ -399,15 +295,17 @@ if (listDbFile == null) { //鍏抽棴 - ProgressBar.Close(); + ProgressFormBar.Current.Close(); return false; } //鐢熸垚鏂囦欢 foreach (string fileName in listDbFile) { - var data = this.GetShardFileContent(fileName); - Global.WriteFileByBytesByHomeId(fileName, data); + var oldPath = UserCenterLogic.CombinePath(DirNameResourse.LocalMemoryDirectory, DirNameResourse.DownLoadShardDirectory, fileName); + var newPath = System.IO.Path.Combine(Config.Instance.FullPath, fileName); + System.IO.File.Copy(oldPath, newPath, true); + if (fileName.StartsWith("Room_") == true) { //鎴块棿鏂囦欢鐗规畩澶勭悊 @@ -435,11 +333,9 @@ //鍙湁鎴愬憳鎵嶆湁杩欎釜姒傚康 return true; } - //寮哄埗鎸囧畾鏂囨湰闄勫姞淇℃伅锛氬叡浜暟鎹悓姝ヤ腑 - string msg = Language.StringByID(R.MyInternationalizationString.uShardDataIsSynchronizing); - //寮�鍚繘搴︽潯 - ProgressBar.Show(msg); - ProgressBar.SetAppendText(msg); + //寮�鍚繘搴︽潯 鍏变韩鏁版嵁鍚屾涓� + ProgressFormBar.Current.Start(); + ProgressFormBar.Current.SetMsg(Language.StringByID(R.MyInternationalizationString.uShardDataIsSynchronizing)); if (dicUpdateTime == null) { @@ -458,7 +354,7 @@ if (string.IsNullOrEmpty(result) == true) { //鍏抽棴 - ProgressBar.Close(); + ProgressFormBar.Current.Close(); return false; } var listShardData = Newtonsoft.Json.JsonConvert.DeserializeObject<List<GetShardInfoResult>>(result); @@ -473,13 +369,25 @@ var listLocalFile = Global.FileListByHomeId(); foreach (string fileName in listLocalFile) { + if (fileName == DirNameResourse.ShardFloorFile) + { + //妤煎眰鏂囦欢 + var varData = Global.ReadFileByHomeId(fileName); + var dicFloor = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, string>>(Encoding.UTF8.GetString(varData)); + Common.Config.Instance.Home.FloorDics = dicFloor; + Common.Config.Instance.Home.Save(false); + + Global.DeleteFilebyHomeId(fileName); + } + if (listShardFile.Contains(fileName) == true) { //鏈湴鐨勮繖涓枃浠惰繕鍒嗕韩鐫�,娌℃湁闂 continue; } + //妫�娴嬫湰鍦拌澶囨枃浠�,鏄惁瀛樺湪宸茬粡鍙栨秷浜嗗叡浜簡鐨� - if (fileName.StartsWith(Common.LocalDevice.deviceFirstName) == true) + if (fileName.StartsWith("Device_") == true) { //鍒犻櫎鎺夎繖涓澶囨枃浠� Global.DeleteFilebyHomeId(fileName); @@ -524,7 +432,7 @@ //淇濆瓨鍏ㄩ儴鍒嗕韩鏂囦欢鐨勬洿鏂版棩鏈� this.SaveAllShardFileAgoUpdateTime(dicUpdateTime); //鍏抽棴 - ProgressBar.Close(); + ProgressFormBar.Current.Close(); return true; } @@ -570,7 +478,6 @@ /// <summary> /// 鑾峰彇鎴愬憳鍏变韩鍒楄〃鐒跺悗淇濆瓨鍒版湰鍦�(鐢ㄥ畬涔嬪悗鏈�濂借皟鐢ㄦ竻绌� ClearShardDirectory鍑芥暟娓呯┖) /// </summary> - /// <param name="SubAccountDistributedMark">鎴愬憳鍒楄〃鎺ュ彛杩斿洖鐨凷ubAccountDistributedMark</param> /// <param name="memberShardInfo"> /// <para>鎴愬憳鐨勫垎浜暟鎹�</para> /// <para>濡傛灉涓嶇煡閬撹繖鏄粈涔堜笢瑗�,灏盢ew涓�涓�,鐒跺悗缂撳瓨璧锋潵,璋冪敤鍏朵粬鍑芥暟閮介渶瑕佽繖涓笢瑗�</para> @@ -581,12 +488,15 @@ { if (memberShardInfo.Refresh == false) { + //浠庢湰鍦拌幏鍙栨垚鍛樼殑鍒嗕韩鍒楄〃 + this.GetMemberShardContentListFromLocal(memberShardInfo); return true; } memberShardInfo.Refresh = false; - //鎵撳紑杩涘害鏉� - ProgressBar.Show(); + //姝e湪鑾峰彇鍒嗕韩鏁版嵁 + ProgressFormBar.Current.Start(); + ProgressFormBar.Current.SetMsg(Language.StringByID(R.MyInternationalizationString.uShardContentGetting)); var infoPra = new { @@ -598,7 +508,7 @@ if (result == null) { //鍏抽棴杩涘害鏉� - ProgressBar.Close(); + ProgressFormBar.Current.Close(); return false; } var listData = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ReceiveShardInfoResult>>(result); @@ -633,14 +543,159 @@ if (listFile == null) { //鍏抽棴杩涘害鏉� - ProgressBar.Close(); + ProgressFormBar.Current.Close(); return false; } + + //浠庢湰鍦拌幏鍙栨垚鍛樼殑鍒嗕韩鍒楄〃 + this.GetMemberShardContentListFromLocal(memberShardInfo); + //鍏抽棴杩涘害鏉� - ProgressBar.Close(); + ProgressFormBar.Current.Close(); return true; } + + /// <summary> + /// 浠庢湰鍦拌幏鍙栨垚鍛樼殑鍒嗕韩鍒楄〃 + /// </summary> + /// <param name="memberShardInfo">鎴愬憳鐨勫垎浜暟鎹殑缂撳瓨(璋冪敤杩欎釜鍑芥暟浼氬埛鏂拌繖涓彉閲忕殑淇℃伅)</param> + private void GetMemberShardContentListFromLocal(MemberShardInfoData memberShardInfo) + { + memberShardInfo.dicShardRoom = new Dictionary<string, Common.Room>(); + this.dicShardDeviceFile.Clear(); + + var listDeviceFile = new HashSet<string>(); + var listSceneFile = new HashSet<string>(); + + var listFile = this.GetLocalAllShardFile(); + //鍏堝垵濮嬪寲鎴块棿 + foreach (string fileName in listFile) + { + if (fileName.StartsWith("Room_") == true) + { + //鎴块棿鏂囦欢 + var byteData = this.GetShardFileContent(fileName); + if (byteData != null) + { + string valueData = System.Text.Encoding.UTF8.GetString(byteData); + var roomTemp = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.Room>(valueData); + memberShardInfo.dicShardRoom[fileName] = roomTemp; + } + } + else if (fileName == DirNameResourse.ShardFloorFile) + { + //妤煎眰鏂囦欢 + var byteData = this.GetShardFileContent(fileName); + if (byteData != null) + { + string valueData = System.Text.Encoding.UTF8.GetString(byteData); + memberShardInfo.dicShardFloor = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, string>>(valueData); + } + } + else if (fileName.StartsWith("Device_") == true) + { + string[] Arry = fileName.Split(new string[] { "_" }, StringSplitOptions.RemoveEmptyEntries); + string mainKeys = Common.LocalDevice.Current.GetDeviceMainKeys(Arry[2], Convert.ToInt32(Arry[3])); + this.dicShardDeviceFile[mainKeys] = fileName; + + //璁惧鏂囦欢 + listDeviceFile.Add(fileName); + } + else if (fileName.StartsWith("Scene_") == true) + { + //鍦烘櫙鏂囦欢 + listSceneFile.Add(fileName); + } + } + + //璁剧疆鎴块棿閲岄潰璁惧鐨刄I瀵硅薄(鍥犱负杩欎釜涓滆タ鏄弽搴忓垪鍖栧嚭鏉ョ殑,璁惧UI瀵硅薄鏄笉搴忓垪鍖栧璞�) + foreach (var tempRoom in memberShardInfo.dicShardRoom.Values) + { + //杩樺師璁惧瀵硅薄 + tempRoom.DeviceUIList.Clear(); + for (int i = 0; i < tempRoom.DeviceUIFilePathList.Count; i++) + { + string deviceFile = tempRoom.DeviceUIFilePathList[i]; + //杩欎釜璁惧鏂囦欢鍖归厤寰楀埌鎴块棿 + listDeviceFile.Remove(deviceFile); + if (this.IsFileExists(deviceFile) == false) + { + //绉婚櫎鎺夎繖涓笉瀵瑰姴鐨勮矾寰� + tempRoom.DeviceUIFilePathList.RemoveAt(i); + i--; + continue; + } + tempRoom.DeviceUIList.Add(Common.LocalDevice.Current.GetDeviceUI(deviceFile)); + } + //杩樺師鍦烘櫙瀵硅薄 + tempRoom.SceneUIList.Clear(); + for (int i = 0; i < tempRoom.SceneUIFilePathList.Count; i++) + { + string uiPath = tempRoom.SceneUIFilePathList[i]; + //杩欎釜鍦烘櫙鏂囦欢鍖归厤寰楀埌鎴块棿 + listSceneFile.Remove(uiPath); + var byteData = this.GetShardFileContent(uiPath); + if (byteData == null) + { + //绉婚櫎鎺夎繖涓笉瀵瑰姴鐨勮矾寰� + tempRoom.SceneUIFilePathList.RemoveAt(i); + i--; + continue; + } + string valueData = System.Text.Encoding.UTF8.GetString(byteData); + var tempUi = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.SceneUI>(valueData); + tempRoom.SceneUIList.Add(tempUi); + + //鑾峰彇鍦烘櫙閲岄潰鐨勫叏閮ㄧ洰鏍�(2019.11.05杩藉姞鎿嶄綔,鏈夊彲鑳介偅涓澶囨槸鐢卞満鏅祵濂楁潵鐨�,鎵�浠ュ畠鏈夊彲鑳戒笉灞炰簬浠讳綍鎴块棿) + foreach (var data in tempUi.AddSceneMemberDataList) + { + //璁惧 + if (data.Type == 0) + { + string mainkey = LocalDevice.Current.GetDeviceMainKeys(data.DeviceAddr, data.Epoint); + if (dicShardDeviceFile.ContainsKey(mainkey) == true ) + { + //杩欎釜璁惧鏂囦欢鍖归厤寰楀埌 + listDeviceFile.Remove(dicShardDeviceFile[mainkey]); + } + } + if (data.Type == 1) + { + var temp = new SceneUI(); + temp.Id = data.ElseScenesId; + //杩欎釜鍦烘櫙鏂囦欢鍖归厤寰楀埌 + listSceneFile.Remove(temp.FileName); + } + } + } + } + //濡傛灉瀛樺湪鍖归厤涓嶄笂鐨勬枃浠� + if (listDeviceFile.Count != 0 || listSceneFile.Count != 0) + { + //鍒涘缓涓�涓复鏃舵埧闂存潵瀛樺偍 + var roomTemp = new Room(); + roomTemp.Id = "Other"; + roomTemp.FloorId = "Other"; + memberShardInfo.dicShardRoom[roomTemp.FileName] = roomTemp; + roomTemp.Name = Language.StringByID(R.MyInternationalizationString.uUnallocated); + //杩樺師璁惧瀵硅薄 + foreach (string deviceFile in listDeviceFile) + { + roomTemp.DeviceUIFilePathList.Add(deviceFile); + roomTemp.DeviceUIList.Add(Common.LocalDevice.Current.GetDeviceUI(deviceFile)); + } + //杩樺師鍦烘櫙瀵硅薄 + foreach (string uiPath in listSceneFile) + { + var byteData = this.GetShardFileContent(uiPath); + string valueData = System.Text.Encoding.UTF8.GetString(byteData); + var tempUi = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.SceneUI>(valueData); + roomTemp.SceneUIList.Add(tempUi); + } + } + } + #endregion @@ -812,8 +867,11 @@ listFile.Add(device.FilePath); this.AddShardFile(device.FilePath); + //鍔犵偣缂撳瓨 + this.dicShardDeviceFile[LocalDevice.Current.GetDeviceMainKeys(device)] = device.FilePath; + //璁惧鐨刄I - var deviceUi = $"DeviceUI_{device.FilePath}"; + var deviceUi = device.FilePath; if (roomTemp.DeviceUIFilePathList.Contains(deviceUi) == false) { roomTemp.DeviceUIFilePathList.Add(deviceUi); @@ -825,6 +883,9 @@ //璁惧 listFile.Add(device.FilePath); this.AddShardFile(device.FilePath); + + //鍔犵偣缂撳瓨 + this.dicShardDeviceFile[LocalDevice.Current.GetDeviceMainKeys(device)] = device.FilePath; } //鍦烘櫙 @@ -868,7 +929,7 @@ } /// <summary> - /// 浠庣綉鍏宠幏鍙栧満鏅殑鐩爣璁惧鍒楄〃 + /// 鑾峰彇鍦烘櫙鐨勭洰鏍囪澶囧垪琛�(杩欎釜涓嶈兘浠庡垎浜暟鎹腑鑾峰彇) /// </summary> /// <param name="scene">鍦烘櫙</param> /// <param name="listCheck">閲嶅妫�娴嬬敤</param> @@ -1229,7 +1290,7 @@ string deviceFileName = device.FilePath; //绉婚櫎璺緞鍒楄〃 - roomTemp.DeviceUIFilePathList.Remove($"DeviceUI_{device.FilePath}"); + roomTemp.DeviceUIFilePathList.Remove(device.FilePath); if (listHadShard.Contains(deviceFileName) == true) { //鍏朵粬鍦烘櫙鍒嗕韩鏈夎繖涓澶�,鎵�浠ヤ笉鍒犻櫎杩欎釜璁惧鐨勬牴婧愭枃浠�,鍙槸鎶婃埧闂寸殑璁惧鍒楄〃璺緞绉婚櫎 @@ -1410,7 +1471,6 @@ } //鍏抽棴杩涘害鏉� ProgressBar.Close(); - ; for (int i = 0; i < listDeleteFile.Count; i++) { string fileName = listDeleteFile[i]; @@ -1564,7 +1624,7 @@ //璁惧 foreach (var deviceUi in roomTemp.DeviceUIFilePathList) { - string deviceFile = deviceUi.Replace("DeviceUI_", string.Empty); + string deviceFile = deviceUi; if (listDeleteFile.Contains(deviceFile) == true) { //鍥犱负涓�涓洖璺彧鑳藉垎閰嶄竴涓尯鍩�,鎵�浠ュ彲浠ョ洿鎺ュ垽鏂� @@ -1617,7 +1677,7 @@ } /// <summary> - /// 浠庡満鏅璞¢噷闈㈣幏鍙栧叏閮ㄧ殑缁戝畾鐩爣鐨勬枃浠跺悕瀛� + /// 浠庡満鏅璞¢噷闈㈣幏鍙栧叏閮ㄧ殑缁戝畾鐩爣鐨勬枃浠跺悕瀛�(杩欓噷闈㈢殑涓滆タ蹇呴』浠庡垎浜暟鎹腑鑾峰彇) /// </summary> /// <param name="scene">鍦烘櫙</param> /// <param name="listFile">鏂囦欢鍒楄〃(閲岄潰瀛樼殑鏄澶嘦I鏂囦欢鍜岃澶囨枃浠跺拰鍦烘櫙鏂囦欢)</param> @@ -1629,10 +1689,10 @@ //璁惧 if (data.Type == 0) { - var device = Common.LocalDevice.Current.GetDevice(data.DeviceAddr, data.Epoint); - if (device != null && listFile.Contains(device.FilePath) == false) + string mainkey = LocalDevice.Current.GetDeviceMainKeys(data.DeviceAddr, data.Epoint); + if (dicShardDeviceFile.ContainsKey(mainkey) == true && listFile.Contains(dicShardDeviceFile[mainkey]) == false) { - listFile.Add(device.FilePath); + listFile.Add(dicShardDeviceFile[mainkey]); } } if (data.Type == 1) @@ -1644,13 +1704,10 @@ { string valueData = System.Text.Encoding.UTF8.GetString(byteData); var roomTemp = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.SceneUI>(valueData); - if (roomTemp != null) + dicBindScene[roomTemp.FileName] = roomTemp; + if (listFile.Contains(roomTemp.FileName) == false) { - dicBindScene[roomTemp.FileName] = roomTemp; - if (listFile.Contains(roomTemp.FileName) == false) - { - listFile.Add(roomTemp.FileName); - } + listFile.Add(roomTemp.FileName); } } } -- Gitblit v1.8.0