From 66a9965c44ecc32a6696abca876ab9d1cd091584 Mon Sep 17 00:00:00 2001 From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local> Date: 星期五, 28 二月 2020 15:25:13 +0800 Subject: [PATCH] 2020.2.28 --- ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlShardLogic.cs | 174 ++++++++++++++++++++++++++------------------------------- 1 files changed, 80 insertions(+), 94 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlShardLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlShardLogic.cs index 7ea6cfd..8b0d4e2 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlShardLogic.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlShardLogic.cs @@ -53,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>(); //鏂囦欢澶� @@ -69,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) @@ -86,7 +87,7 @@ //淇濆瓨鍒版寚瀹氭枃浠跺す涓� Global.WriteFileToDirectoryByBytes(strDir, dataResult.ShareName, dataResult.ShareDataBytes); //璁剧疆杩涘害鍊� - ProgressBar.SetValue(1); + ProgressFormBar.Current.SetValue(i + 1, listMarkCount); } //鍏佽鎸夌郴缁熺殑杩斿洖閿� @@ -284,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(); @@ -296,7 +295,7 @@ if (listDbFile == null) { //鍏抽棴 - ProgressBar.Close(); + ProgressFormBar.Current.Close(); return false; } @@ -334,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) { @@ -357,7 +354,7 @@ if (string.IsNullOrEmpty(result) == true) { //鍏抽棴 - ProgressBar.Close(); + ProgressFormBar.Current.Close(); return false; } var listShardData = Newtonsoft.Json.JsonConvert.DeserializeObject<List<GetShardInfoResult>>(result); @@ -435,7 +432,7 @@ //淇濆瓨鍏ㄩ儴鍒嗕韩鏂囦欢鐨勬洿鏂版棩鏈� this.SaveAllShardFileAgoUpdateTime(dicUpdateTime); //鍏抽棴 - ProgressBar.Close(); + ProgressFormBar.Current.Close(); return true; } @@ -481,7 +478,6 @@ /// <summary> /// 鑾峰彇鎴愬憳鍏变韩鍒楄〃鐒跺悗淇濆瓨鍒版湰鍦�(鐢ㄥ畬涔嬪悗鏈�濂借皟鐢ㄦ竻绌� ClearShardDirectory鍑芥暟娓呯┖) /// </summary> - /// <param name="SubAccountDistributedMark">鎴愬憳鍒楄〃鎺ュ彛杩斿洖鐨凷ubAccountDistributedMark</param> /// <param name="memberShardInfo"> /// <para>鎴愬憳鐨勫垎浜暟鎹�</para> /// <para>濡傛灉涓嶇煡閬撹繖鏄粈涔堜笢瑗�,灏盢ew涓�涓�,鐒跺悗缂撳瓨璧锋潵,璋冪敤鍏朵粬鍑芥暟閮介渶瑕佽繖涓笢瑗�</para> @@ -498,8 +494,9 @@ } memberShardInfo.Refresh = false; - //鎵撳紑杩涘害鏉� - ProgressBar.Show(); + //姝e湪鑾峰彇鍒嗕韩鏁版嵁 + ProgressFormBar.Current.Start(); + ProgressFormBar.Current.SetMsg(Language.StringByID(R.MyInternationalizationString.uShardContentGetting)); var infoPra = new { @@ -511,7 +508,7 @@ if (result == null) { //鍏抽棴杩涘害鏉� - ProgressBar.Close(); + ProgressFormBar.Current.Close(); return false; } var listData = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ReceiveShardInfoResult>>(result); @@ -546,7 +543,7 @@ if (listFile == null) { //鍏抽棴杩涘害鏉� - ProgressBar.Close(); + ProgressFormBar.Current.Close(); return false; } @@ -554,7 +551,7 @@ this.GetMemberShardContentListFromLocal(memberShardInfo); //鍏抽棴杩涘害鏉� - ProgressBar.Close(); + ProgressFormBar.Current.Close(); return true; } @@ -575,41 +572,45 @@ //鍏堝垵濮嬪寲鎴块棿 foreach (string fileName in listFile) { - if (fileName.StartsWith("Room_") == true) + try { - //鎴块棿鏂囦欢 - var byteData = this.GetShardFileContent(fileName); - if (byteData != null) + if (fileName.StartsWith("Room_") == true) { - string valueData = System.Text.Encoding.UTF8.GetString(byteData); - var roomTemp = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.Room>(valueData); - memberShardInfo.dicShardRoom[fileName] = roomTemp; + //鎴块棿鏂囦欢 + 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) + else if (fileName == DirNameResourse.ShardFloorFile) { - string valueData = System.Text.Encoding.UTF8.GetString(byteData); - memberShardInfo.dicShardFloor = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, string>>(valueData); + //妤煎眰鏂囦欢 + 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; + 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); + //璁惧鏂囦欢 + listDeviceFile.Add(fileName); + } + else if (fileName.StartsWith("Scene_") == true) + { + //鍦烘櫙鏂囦欢 + listSceneFile.Add(fileName); + } } - else if (fileName.StartsWith("Scene_") == true) - { - //鍦烘櫙鏂囦欢 - listSceneFile.Add(fileName); - } + catch (Exception ex) { HdlLogLogic.Current.WriteLog(ex); } } //璁剧疆鎴块棿閲岄潰璁惧鐨刄I瀵硅薄(鍥犱负杩欎釜涓滆タ鏄弽搴忓垪鍖栧嚭鏉ョ殑,璁惧UI瀵硅薄鏄笉搴忓垪鍖栧璞�) @@ -830,13 +831,12 @@ //鍏嬮殕涓�涓璞� roomTemp = nowRoom.CloneRoomClass(); memberShardInfo.TempRoom = roomTemp; - //鏂板垎浜殑鎴块棿,濡傛灉鍥剧墖鏄嚜瀹氫箟鐨�,鍒欎笂浼犲浘鐗� - if (roomTemp.BackgroundImageType != 0) + //鏂板垎浜殑鎴块棿,濡傛灉鍥剧墖鏄嚜瀹氫箟鐨�,骞朵笖杩欎釜鍥剧墖鏄瓨鍦ㄧ殑,鍒欎笂浼犲浘鐗� + if (roomTemp.BackgroundImageType != 0 && Common.Global.IsExistsByHomeId(roomTemp.BackgroundImage) == true) { //鑷畾涔夌殑鍥剧墖,瀹冨瓨鍦ㄤ簬鏈湴,浣嗘槸瀹冩槸鍏ㄨ矾寰� - string[] Arry = roomTemp.BackgroundImage.Split(new string[] { "/" }, StringSplitOptions.RemoveEmptyEntries); - listFile.Add(Arry[Arry.Length - 1]); - this.AddShardFile(Arry[Arry.Length - 1]); + listFile.Add(roomTemp.BackgroundImage); + this.AddShardFile(roomTemp.BackgroundImage); } } else @@ -848,15 +848,13 @@ if (roomTemp.BackgroundImageType != 0) { //鍒犻櫎鑷畾涔夊浘鐗� - string[] Arry = roomTemp.BackgroundImage.Split(new string[] { "/" }, StringSplitOptions.RemoveEmptyEntries); - listDelPic.Add(Arry[Arry.Length - 1]); + listDelPic.Add(roomTemp.BackgroundImage); } - if (nowRoom.BackgroundImageType != 0) + if (nowRoom.BackgroundImageType != 0 && Common.Global.IsExistsByHomeId(nowRoom.BackgroundImage) == true) { //鑷畾涔夌殑鍥剧墖,瀹冨瓨鍦ㄤ簬鏈湴,浣嗘槸瀹冩槸鍏ㄨ矾寰� - string[] Arry = nowRoom.BackgroundImage.Split(new string[] { "/" }, StringSplitOptions.RemoveEmptyEntries); - listFile.Add(Arry[Arry.Length - 1]); - this.AddShardFile(Arry[Arry.Length - 1]); + listFile.Add(nowRoom.BackgroundImage); + this.AddShardFile(nowRoom.BackgroundImage); } //鍙樻洿鍥剧墖璁剧疆 roomTemp.BackgroundImageType = nowRoom.BackgroundImageType; @@ -894,12 +892,11 @@ //鍦烘櫙 foreach (var secene in listScene) { - if (secene.IconPathType != 0) + if (secene.IconPathType != 0 && Common.Global.IsExistsByHomeId(secene.IconPath) == true) { - //鑷畾涔夌殑鍥剧墖,瀹冨瓨鍦ㄤ簬鏈湴,浣嗘槸瀹冩槸鍏ㄨ矾寰� - string[] Arry = secene.IconPath.Split(new string[] { "/" }, StringSplitOptions.RemoveEmptyEntries); - listFile.Add(Arry[Arry.Length - 1]); - this.AddShardFile(Arry[Arry.Length - 1]); + //鑷畾涔夌殑鍥剧墖,瀹冨瓨鍦ㄤ簬鏈湴 + listFile.Add(secene.IconPath); + this.AddShardFile(secene.IconPath); } listFile.Add(secene.FileName); @@ -1028,7 +1025,7 @@ if (memberShardInfo.dicAllShardKeys.ContainsKey(fileName) == false) { var result = await UserCenterLogic.GetResponseDataByRequestHttps("ZigbeeDataShare/AddShareData", false, info); - if (string.IsNullOrEmpty(result) == true) + if (result == null) { return false; } @@ -1076,24 +1073,19 @@ nvc.Add("HouseDistributedMark", Common.Config.Instance.Home.Id); nvc.Add("SubAccountDistributedMark", memberShardInfo.SubAccountDistributedMark); nvc.Add("ShareDataBytes", Convert.ToBase64String(this.GetShardFileContent(fileName))); - nvc.Add("IsOtherAccountCtrl", Common.Config.Instance.isAdministrator.ToString()); //杩藉姞鍏变韩 if (memberShardInfo.dicAllShardKeys.ContainsKey(fileName) == false) { - var result = this.UpLoadBigBackupFileToDB("ZigbeeDataShare/AddShareData", fullName, nvc); - if (string.IsNullOrEmpty(result) == true) - { - return null; - } //杩欓噷鏈夌偣鐗规畩锛屾帴鍙f槸鐩存帴杩斿洖涓婚敭鍥炴潵鐨勶紝鑰屼笉鏄疛soin + var result = this.DoUpLoadBigBackupFileToDB("ZigbeeDataShare/AddShareData", fullName, nvc); return result; } else { nvc.Add("DistributedMark", memberShardInfo.dicAllShardKeys[fileName]); - var result = this.UpLoadBigBackupFileToDB("ZigbeeDataShare/EditShareData", fullName, nvc); - if (result != "1") + var result = this.DoUpLoadBigBackupFileToDB("ZigbeeDataShare/EditShareData", fullName, nvc); + if (result == null) { return null; } @@ -1102,26 +1094,17 @@ } /// <summary> - /// 涓婁紶澶ф枃浠� + /// 鎵ц涓婁紶澶ф枃浠� /// </summary> /// <param name="RequestName">璇锋眰鎺ュ彛</param> /// <param name="fullFileName">鏂囦欢鍚嶅瓧(鍚矾寰�)</param> /// <param name="nvc"></param> /// <returns></returns> - private string UpLoadBigBackupFileToDB(string RequestName, string fullFileName, NameValueCollection nvc) + private string DoUpLoadBigBackupFileToDB(string RequestName, string fullFileName, NameValueCollection nvc) { string paramName = "file"; string contentType = "application/octet-stream"; string requestUrl = $"{CommonPage.RequestHttpsHost}/{RequestName}"; - //鍚敤绠$悊鍛樻潈闄� - //if (Config.Instance.isAdministrator == true) - //{ - // requestUrl = $"{Config.Instance.AdminRequestBaseUrl}/{RequestName}"; - //} - //else - //{ - // requestUrl = $"{CommonPage.RequestHttpsHost}/{RequestName}"; - //} string boundary = "---------------------------" + DateTime.Now.Ticks.ToString("x"); byte[] boundarybytes = System.Text.Encoding.ASCII.GetBytes("\r\n--" + boundary + "\r\n"); @@ -1131,6 +1114,8 @@ wr.Method = "POST"; wr.KeepAlive = true; wr.Credentials = System.Net.CredentialCache.DefaultCredentials; + + wr.Headers.Add(HttpRequestHeader.Authorization, Config.Instance.Token); var rs = wr.GetRequestStream(); @@ -1170,23 +1155,24 @@ StreamReader reader2 = new StreamReader(stream2); string result = reader2.ReadToEnd(); - if (RequestName == "ZigbeeDataShare/AddShareData") - { - return result; - } var data = Newtonsoft.Json.JsonConvert.DeserializeObject<Shared.Common.ResponseEntity.ResponsePack>(result); bool flage = UserCenterLogic.CheckNotEorrorMsg(data, requestUrl); if (flage == true) { - return "1"; + //缂栬緫鐨勬椂鍊欙紝杩欎釜涓滆タ浼氭槸null + return data.ResponseData == null ? "1" : data.ResponseData.ToString(); } - return "0"; + + //Log鍑哄姏 + IMessageCommon.Current.GetMsgByRequestName(RequestName, data, nvc); + + return null; } catch { - return "-1"; + return null; } finally { -- Gitblit v1.8.0