From ecba45c93391066bc30c7bd602c3a7683fbb99a7 Mon Sep 17 00:00:00 2001 From: xm <1271024303@qq.com> Date: 星期五, 31 七月 2020 10:56:12 +0800 Subject: [PATCH] 临时备份 --- ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlResidenceLogic.cs | 229 ++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 202 insertions(+), 27 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlResidenceLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlResidenceLogic.cs index c60d868..6187c50 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlResidenceLogic.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlResidenceLogic.cs @@ -39,13 +39,13 @@ /// 鍒涘缓鏂扮殑浣忓畢(杩斿洖浣忓畢id,null浠h〃澶辫触) /// </summary> /// <param name="residenceName">浣忓畢鍚嶇О</param> - public async System.Threading.Tasks.Task<string> CreatNewResidence(string residenceName) + public string CreatNewResidence(string residenceName) { var Pra = new AddResidencePra(); Pra.Name = residenceName; //娣诲姞浣忓畢 - string resultData = await UserCenterLogic.GetResponseDataByRequestHttps("App/AddHome", false, Pra); - if (resultData == null) + string resultData = UserCenterLogic.GetResponseDataByRequestHttps("App/AddHome", false, Pra); + if (string.IsNullOrEmpty(resultData) == true) { return null; } @@ -96,7 +96,7 @@ /// </summary> /// <param name="residenceId"></param> /// <returns></returns> - public async System.Threading.Tasks.Task SwitchResidence(string residenceId) + public void SwitchResidence(string residenceId) { //鎵撳紑杩涘害鏉� ProgressBar.Show(); @@ -106,7 +106,7 @@ Config.Instance.Home = this.GetHouseByHouseId(residenceId); Config.Instance.Save(); //鍒锋柊涓汉涓績鐨勫唴瀛樺強绾跨▼ - await UserCenterLogic.InitUserCenterMenmoryAndThread(false); + UserCenterLogic.InitUserCenterMenmoryAndThread(false); //鍏抽棴杩涘害鏉� ProgressBar.Close(); @@ -122,7 +122,7 @@ /// <param name="residenceId">浣忓畢id</param> /// <param name="residenceName">浣忓畢鍚嶇О</param> /// <returns></returns> - public async System.Threading.Tasks.Task<bool> EditorResidenceName(string residenceId, string residenceName) + public bool EditorResidenceName(string residenceId, string residenceName) { var Pra = new EditorResidencePra(); Pra.HomeId = residenceId; @@ -131,7 +131,7 @@ Pra.LoginAccessToken = Config.Instance.Token; //缂栬緫浣忓畢 - bool flage = await UserCenterLogic.GetResultStatuByRequestHttps("App/EditHome", false, Pra); + bool flage = UserCenterLogic.GetResultStatuByRequestHttps("App/EditHome", false, Pra); if (flage == true) { //鍒锋柊鍐呭瓨鐨勪綇瀹呭悕 @@ -160,7 +160,7 @@ home.Name = residenceName; home.Save(); //浣忓畢淇敼鍚嶇О鐨勮瘽,涓婚〉闇�瑕侀噸鏂板埛鏂� - UserView.UserPage.Instance.RefreshForm = true; + UserView.UserPage.Instance.RefreshAllForm = true; } @@ -176,7 +176,7 @@ public House GetHouseByHouseId(string houseId) { var path = System.IO.Path.Combine(Shared.IO.FileUtils.RootPath, Config.Instance.Guid, houseId, $"House_{houseId}.json"); - var file = Shared.IO.FileUtils.ReadFile(path); + var file = HdlFileLogic.Current.ReadFileByteContent(path); if (file == null) { return null; @@ -192,7 +192,7 @@ public House GetHouseByFilePath(string filePath) { var path = System.IO.Path.Combine(Shared.IO.FileUtils.RootPath, Config.Instance.Guid, GetHouseIdByFilePath(filePath), filePath); - var file = Shared.IO.FileUtils.ReadFile(path); + var file = HdlFileLogic.Current.ReadFileByteContent(path); if (file == null) { return null; @@ -206,27 +206,26 @@ /// <summary> /// 鑾峰彇浜戠浣忓畢鍒楄〃 /// </summary> - public async System.Threading.Tasks.Task<List<string>> GetHomeListsFromDb() + public List<string> GetHomeListsFromDb() { - var pageSetting = new SendDataToServer.ResidenceListPageSettingObj() + if (HdlWifiLogic.Current.CanAccessHttp == false) { - PageSize = CommonPage.PageSize - }; - - var reqDto = new SendDataToServer.ResidenceListObj() - { - LoginAccessToken = Config.Instance.Token, - PageSetting = pageSetting - }; + //褰撳墠鏃犳硶鑱旂綉 + return Config.Instance.HomeFilePathList; + } var requestObj = new SendDataToServer.ResidenceListReqDto() { - ReqDto = reqDto, RequestVersion = CommonPage.RequestVersion, + ReqDto = new SendDataToServer.ResidenceListObj() + { + LoginAccessToken = Config.Instance.Token, + PageSetting = new SendDataToServer.ResidenceListPageSettingObj { PageSize = 999 } + } }; try { var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(requestObj); - var revertObj = await CommonPage.Instance.RequestHttpsZigbeeAsync("App/GetHomePager", System.Text.Encoding.UTF8.GetBytes(requestJson)); + var revertObj = CommonPage.Instance.RequestHttpsZigbeeAsync("App/GetHomePager", System.Text.Encoding.UTF8.GetBytes(requestJson)); if (revertObj == null) { return null; @@ -234,7 +233,7 @@ if (revertObj.StateCode.ToUpper() == "SUCCESS") { var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<Shared.Common.ResponseEntity.ResidenceRes>(revertObj.ResponseData.ToString()); - if(responseDataObj.TotalCount>0) + if (responseDataObj.TotalCount > 0) { //娓呯┖褰撳墠浣忓畢鍒楄〃 Config.Instance.HomeFilePathList.Clear(); @@ -317,14 +316,14 @@ var listHome = new List<Common.House>(); foreach (var housePath in Common.Config.Instance.HomeFilePathList) { - var home =this.GetHouseByFilePath(housePath); + var home = this.GetHouseByFilePath(housePath); if (home == null) { continue; } listHome.Add(home); } - return listHome; + return this.SortHouse(listHome); } /// <summary> @@ -351,7 +350,7 @@ if (arryHouse.Length > 0) { //璇诲彇鏂囦欢鍐呭 - var textValue = UserCenterLogic.LoadFileContent(System.IO.Path.Combine(nowPath, arryHouse[0])); + var textValue = HdlFileLogic.Current.ReadFileTextContent(System.IO.Path.Combine(nowPath, arryHouse[0])); if (textValue == null) { continue; @@ -360,7 +359,183 @@ listHome.Add(myHouse); } } - return listHome; + return this.SortHouse(listHome); + } + + #endregion + + #region 鈻� 浣忓畢鎺掑簭___________________________ + + /// <summary> + /// 浣忓畢鎺掑簭 + /// </summary> + /// <param name="i_listHouse"></param> + /// <returns></returns> + public List<House> SortHouse(List<House> i_listHouse) + { + //浠庝竴鍫嗘枃瀛椾腑,鑾峰彇杩欎竴鍫嗘枃瀛楅噷闈㈡暟瀛楀瓧绗︿覆鐨勬渶闀块暱搴� + var listName = new List<string>(); + foreach (var house in i_listHouse) + { + listName.Add(house.Name); + } + int numberLength = this.GetNumberMaxLength(listName); + + var listSort = new List<string[]>(); + var dicHouse = new Dictionary<string, House>(); + foreach (var house in i_listHouse) + { + //涓存椂缂撳瓨 + dicHouse[house.Id] = house; + + var strArry = new string[2]; + strArry[0] = house.Id; + strArry[1] = string.Empty; + + string value = string.Empty; + foreach (var c in house.Name) + { + if (char.IsNumber(c) == true) + { + //鏁板瓧 + value += c.ToString(); + continue; + } + else if (value != string.Empty) + { + //濡傛灉鎴块棿鍚嶅瓧甯︽湁鏁板瓧鐨勮瘽,鍒欏乏杈瑰姞闆�,鍥犱负杩欓噷鏈変釜鎺掑簭鐨勯棶棰� + strArry[1] += value.PadLeft(numberLength, '0'); + value = string.Empty; + } + strArry[1] += c.ToString(); + } + if (value != string.Empty) + { + //浠ユ暟瀛楃粨灏剧殑璇� + strArry[1] += value.PadLeft(numberLength, '0'); + } + listSort.Add(strArry); + } + //鎺掑簭 + listSort.Sort((obj1, obj2) => + { + if (obj1[1].CompareTo(obj2[1]) > 0) + { + return 1; + } + return -1; + }); + var listSortHouse = new List<House>(); + foreach (var strArry in listSort) + { + listSortHouse.Add(dicHouse[strArry[0]]); + } + return listSortHouse; + } + + /// <summary> + /// 浜戠浣忓畢鎺掑簭 + /// </summary> + /// <param name="i_listData"></param> + /// <returns></returns> + public List<Common.ResponseEntity.ResidenceObj> SortHouse(List<Common.ResponseEntity.ResidenceObj> i_listData) + { + //浠庝竴鍫嗘枃瀛椾腑,鑾峰彇杩欎竴鍫嗘枃瀛楅噷闈㈡暟瀛楀瓧绗︿覆鐨勬渶闀块暱搴� + var listName = new List<string>(); + foreach (var house in i_listData) + { + listName.Add(house.Name); + } + int numberLength = this.GetNumberMaxLength(listName); + + var listSort = new List<string[]>(); + var dicHouse = new Dictionary<string, Common.ResponseEntity.ResidenceObj>(); + foreach (var house in i_listData) + { + //涓存椂缂撳瓨 + dicHouse[house.Id] = house; + + var strArry = new string[2]; + strArry[0] = house.Id; + strArry[1] = string.Empty; + + string value = string.Empty; + foreach (var c in house.Name) + { + if (char.IsNumber(c) == true) + { + //鏁板瓧 + value += c.ToString(); + continue; + } + else if (value != string.Empty) + { + //濡傛灉鎴块棿鍚嶅瓧甯︽湁鏁板瓧鐨勮瘽,鍒欏乏杈瑰姞闆�,鍥犱负杩欓噷鏈変釜鎺掑簭鐨勯棶棰� + strArry[1] += value.PadLeft(numberLength, '0'); + value = string.Empty; + } + strArry[1] += c.ToString(); + } + if (value != string.Empty) + { + //浠ユ暟瀛楃粨灏剧殑璇� + strArry[1] += value.PadLeft(numberLength, '0'); + } + listSort.Add(strArry); + } + //鎺掑簭 + listSort.Sort((obj1, obj2) => + { + if (obj1[1].CompareTo(obj2[1]) > 0) + { + return 1; + } + return -1; + }); + var listSortHouse = new List<Common.ResponseEntity.ResidenceObj>(); + foreach (var strArry in listSort) + { + listSortHouse.Add(dicHouse[strArry[0]]); + } + return listSortHouse; + } + + /// <summary> + /// 浠庝竴鍫嗘枃瀛椾腑,鑾峰彇杩欎竴鍫嗘枃瀛楅噷闈㈡暟瀛楀瓧绗︿覆鐨勬渶闀块暱搴� + /// </summary> + /// <param name="listText"></param> + /// <returns></returns> + private int GetNumberMaxLength(List<string> listText) + { + int maxLength = 0; + foreach (var text in listText) + { + string value = string.Empty; + foreach (var c in text) + { + if (char.IsNumber(c) == true) + { + //鏁板瓧 + value += c.ToString(); + continue; + } + else if (value != string.Empty) + { + //鍒ゆ柇鏁板瓧闀垮害 + if (maxLength <= value.Length) + { + maxLength = value.Length; + } + value = string.Empty; + } + } + //鍒ゆ柇鏁板瓧闀垮害 + if (maxLength <= value.Length) + { + maxLength = value.Length; + } + } + return maxLength; } #endregion -- Gitblit v1.8.0