From bbc74a6dae2e90a811b2507c5896fe89aa29ccc0 Mon Sep 17 00:00:00 2001 From: 陈嘉乐 <cjl@hdlchina.com.cn> Date: 星期三, 08 一月 2020 11:30:46 +0800 Subject: [PATCH] 2020-01-08 1.替换新服务器接口。 --- Crabtree/SmartHome/UI/SimpleControl/Phone/Register/HomeListView.cs | 284 ++++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 224 insertions(+), 60 deletions(-) diff --git a/Crabtree/SmartHome/UI/SimpleControl/Phone/Register/HomeListView.cs b/Crabtree/SmartHome/UI/SimpleControl/Phone/Register/HomeListView.cs index d7a08b0..0aa3d9a 100644 --- a/Crabtree/SmartHome/UI/SimpleControl/Phone/Register/HomeListView.cs +++ b/Crabtree/SmartHome/UI/SimpleControl/Phone/Register/HomeListView.cs @@ -81,12 +81,20 @@ foreach (var home in UserConfig.Instance.HomeLists) { List<GatewayRes> gatewayList = null; - var requestObj3 = new GatewayByRegionListObj () { RegionID = home.RegionID }; + //var requestObj3 = new GatewayByRegionListObj () { RegionID = home.Id }; + //var requestJson3 = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj3); + var requestObj3 = new GetSingleHomeGatewayPaggerObj (); + requestObj3.ReqDto.LoginAccessToken = MainPage.LoginUser.LoginTokenString; + requestObj3.ReqDto.HomeId = UserConfig.Instance.CurrentRegion.Id; + requestObj3.ReqDto.PageSetting.Page = 1; + requestObj3.ReqDto.PageSetting.PageSize = 999; + + //var requestObj3 = new GatewayByRegionListObj () { RegionID = UserConfig.Instance.CurrentRegion.Id }; var requestJson3 = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj3); - var revertObj3 = MainPage.RequestHttps ("GatewayByRegionList", requestJson3, true, false); - if (revertObj3.StateCode == "SUCCESS") { - var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<List<GatewayRes>> (revertObj3.ResponseData.ToString ()); - gatewayList = responseDataObj; + var revertObj3 = MainPage.RequestHttps (API.GetSingleHomeGatewayPagger, requestJson3); + if (revertObj3.StateCode.ToUpper() == "SUCCESS") { + var infoResult = Newtonsoft.Json.JsonConvert.DeserializeObject<GetGatewayResult> (revertObj3.ResponseData.ToString ()); + gatewayList = infoResult.PageData; if (gatewayList != null) { Application.RunOnMainThread (() => { addRow (home, VerticalScrolViewMiddle, gatewayList.Count == 0 ? null : gatewayList [0]); @@ -126,7 +134,7 @@ { string gatewayMAC = ""; if (gatewayObj != null) { - gatewayMAC = gatewayObj.MAC; + gatewayMAC = gatewayObj.GatewayUniqueId; } var rowView = new RowLayout () { Height = Application.GetRealHeight (110), @@ -147,13 +155,13 @@ Gravity = Gravity.CenterVertical, UnSelectedImagePath = "Item/Point.png", SelectedImagePath = "Item/Point.png", - Visible = home.RegionID != UserConfig.Instance.CurrentRegion.RegionID + Visible = home.Id != UserConfig.Instance.CurrentRegion.Id }; rowView.AddChidren (btnPoint); var btnName = new Button () { Width = Application.GetRealWidth (350), - Text = home.RegionName, + Text = home.Name, TextAlignment = TextAlignment.CenterLeft, X = Application.GetRealWidth (90), TextColor = SkinStyle.Current.TextColor1, @@ -174,7 +182,7 @@ }; rowView.AddChidren (rightButton1); EventHandler<MouseEventArgs> eHandler = (sender, e) => { - if (home.RegionID == UserConfig.Instance.CurrentRegion.RegionID) { + if (home.Id == UserConfig.Instance.CurrentRegion.Id) { //UserConfig.Instance.GatewayMAC = gatewayMAC; goSearchView (); } else { @@ -190,7 +198,7 @@ rowView.MouseUpEventHandler += eHandler; rightButton1.MouseUpEventHandler += eHandler; - if (home.RegionID == UserConfig.Instance.CurrentRegion.RegionID) { + if (home.Id == UserConfig.Instance.CurrentRegion.Id) { Button btnCheck = new Button () { X = Application.GetRealWidth (20), Y = Application.GetRealHeight (25), @@ -200,7 +208,7 @@ }; rowView.AddChidren (btnCheck); } - if (UserConfig.Instance.CurrentRegion.RegionID != home.RegionID && MainPage.LoginUser.AccountType != 1) { + if (UserConfig.Instance.CurrentRegion.Id != home.Id && MainPage.LoginUser.AccountType != 1) { Button btnDel = new Button () { TextID = R.MyInternationalizationString.Del, BackgroundColor = SkinStyle.Current.DelColor, @@ -293,16 +301,18 @@ }); var requestObj = new LoginObj () { Account = MainPage.LoginUser.AccountString, Password = password }; var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj); - var revertObj = MainPage.RequestHttps ("Login", requestJson, false, false); - if (revertObj.StateCode == "SUCCESS") { - var requestObj2 = new DeleteHomeObj () { Id = home.RegionID }; + var revertObj = MainPage.RequestHttps (API.Login, requestJson, false, false); + if (revertObj.StateCode.ToUpper() == "SUCCESS") { + var requestObj2 = new DelHomeObj () { HomeId = home.Id }; var requestJson2 = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj2); - var revertObj2 = MainPage.RequestHttps ("DeleteHome", requestJson2); - if (revertObj2.StateCode == "SUCCESS") { + var revertObj2 = MainPage.RequestHttps (API.DelHome, requestJson2); + if (revertObj2.StateCode.ToUpper () == "SUCCESS") { Application.RunOnMainThread (() => { //new Alert ("", Language.StringByID (R.MyInternationalizationString.DeleteSuccess), Language.StringByID (R.MyInternationalizationString.Close)).Show (); ShowHomeList (); }); + } else { + ShowDelHomeErrorInfo (revertObj2.StateCode); } } } catch { @@ -318,6 +328,28 @@ dialog.Show (); }; + } + } + + void ShowDelHomeErrorInfo (string stateCodeStr) + { + string mes = ""; + if (stateCodeStr == "NoLogin") { + mes = ErrorCode.NoLogin; + } else if (stateCodeStr == "CurrentHomeExixtsGatewayBind") { + mes = ErrorCode.HomeIdAndTokenNoConsistent; + } else if (stateCodeStr == ErrorCode.NetworkError) { + mes = ErrorCode.NetworkError; + } else { + //RequestServerFailed + //mes = ErrorCode.AddFailed; + mes = ErrorCode.OperationFailed + ErrorCode.Reason + stateCodeStr; + + } + if (!string.IsNullOrEmpty (mes)) { + Application.RunOnMainThread (() => { + new Alert ("", mes, Language.StringByID (R.MyInternationalizationString.Close)).Show (); + }); } } @@ -344,10 +376,10 @@ try { var backuplist = IO.FileUtils.ReadFiles (); int index = 0; - if (string.IsNullOrEmpty (UserConfig.Instance.CurrentRegion.RegionName)) { + if (string.IsNullOrEmpty (UserConfig.Instance.CurrentRegion.Name)) { UserConfig.Instance.CurrentRegion = UserConfig.Instance.HomeLists [0]; } - string oldRegionRootPath = IO.FileUtils.CreateRegionBackup (UserConfig.Instance.CurrentRegion.RegionName); + string oldRegionRootPath = IO.FileUtils.CreateRegionBackup (UserConfig.Instance.CurrentRegion.Name); IO.FileUtils.DeleteRegionFiles (oldRegionRootPath); foreach (var fileName in backuplist) { System.IO.FileInfo fileInfo = new System.IO.FileInfo (IO.FileUtils.RootPath + fileName); @@ -362,7 +394,7 @@ }); } IO.FileUtils.DeleteAllFile (); - string newRegionRootPath = IO.FileUtils.CreateRegionBackup (home.RegionName); + string newRegionRootPath = IO.FileUtils.CreateRegionBackup (home.Name); IO.FileUtils.RestoreRegionFiles (newRegionRootPath); UserConfig.Instance.CurrentRegion = home; //UserConfig.Instance.GatewayMAC = gatewayMAC; @@ -398,7 +430,7 @@ { string gatewayMAC = ""; if (gatewayObj != null) { - gatewayMAC = gatewayObj.MAC; + gatewayMAC = gatewayObj.GatewayUniqueId; } // 鏄惁鏄慨鏀瑰凡缁忓瓨鍦ㄧ殑浣忓畢 @@ -457,7 +489,7 @@ Radius = 5, BorderColor = SkinStyle.Current.BorderColor, BorderWidth = 2, - Text = home.RegionName, + Text = home.Name, }; dialogBodyView.AddChidren (etZoneName); if (MainPage.LoginUser.AccountType == 1) { @@ -541,7 +573,7 @@ Button btnOption = new Button () { X = btnClose.Right + Application.GetRealWidth (2), Width = Application.GetRealWidth (250), - TextID = home.RegionID != UserConfig.Instance.CurrentRegion.RegionID ? R.MyInternationalizationString.Change : R.MyInternationalizationString.SAVE, + TextID = home.Id != UserConfig.Instance.CurrentRegion.Id ? R.MyInternationalizationString.Change : R.MyInternationalizationString.SAVE, TextColor = SkinStyle.Current.DialogTextColor, BackgroundColor = SkinStyle.Current.DialogTitle, }; @@ -574,24 +606,24 @@ return; } } - home.RegionName = etZoneName.Text.Trim (); - AddHome (home.RegionName, macString); + home.Name = etZoneName.Text.Trim (); + AddHome (home.Id, macString); } else { //淇敼浣忓畢鍚嶇О - if (home.RegionName != etZoneName.Text.Trim ()) { - home.RegionName = etZoneName.Text.Trim (); - ChangeHomeName (home.RegionID, home.RegionName); + if (home.Name != etZoneName.Text.Trim ()) { + home.Name = etZoneName.Text.Trim (); + ChangeHomeName (home.Id, home.Name); } //淇敼浣忓畢缁戝畾鐨刴ac if (macString != gatewayMAC) { - ChangeHomeMACByHomeId (home.RegionID, macString); + ChangeHomeMACByHomeId (home.Id, macString, gatewayMAC); } } } dialog.Close (); }; etZoneName.TextChangeEventHandler += (adsf, lkadf) => { - if (etZoneName.Text.Trim () != home.RegionName) { + if (etZoneName.Text.Trim () != home.Name) { btnOption.TextID = R.MyInternationalizationString.SAVE; } else { btnOption.TextID = R.MyInternationalizationString.Change; @@ -607,26 +639,92 @@ /// </summary> /// <param name="homeName">Home name.</param> /// <param name="macString">Mac string.</param> - void AddHome (string homeName, string macString) + void AddHome (string HomeId, string macString) { - var requestObj21 = new AddHomeAndGatewayByONObj () { Region = homeName, MAC = macString }; - var requestJson21 = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj21); - var revertObj21 = MainPage.RequestHttps ("AddHomeAndGatewayByON", requestJson21); - if (revertObj21.StateCode == "SUCCESS") { + var mBindMacObj = new BindGatewayToHomeObj () { + LoginAccessToken = MainPage.LoginUser.LoginTokenString, + HomeId = HomeId, + + }; + mBindMacObj.BindGateways.Add (macString); + + var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (mBindMacObj); + + //var requestObj21 = new AddHomeAndGatewayByONObj () { Region = homeName, MAC = macString }; + //var requestJson21 = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj21); + var revertObj21 = MainPage.RequestHttps (API.BindGatewayToHome, requestJson); + if (revertObj21.StateCode.ToUpper () == "SUCCESS") { new Alert ("", Language.StringByID (R.MyInternationalizationString.addsuccess), Language.StringByID (R.MyInternationalizationString.Close)).Show (); ShowHomeList (); + } else { + ShowBindGatewayToHomeErrorInfo (revertObj21.StateCode); } + } + + /// <summary> + /// + /// </summary> + /// <param name="stateCodeStr"></param> + void ShowBindGatewayToHomeErrorInfo (string stateCodeStr) + { + //string mes = ""; + ////2020-01-06 寰呰ˉ鍏� + //if (stateCodeStr == ErrorCode.NetworkError) { + // mes = ErrorCode.NetworkError; + //} else { + // mes = ErrorCode.OperationFailed + ErrorCode.Reason + stateCodeStr; + + //} + //if (!string.IsNullOrEmpty (mes)) { + // Application.RunOnMainThread (() => { + // new Alert ("", mes, Language.StringByID (R.MyInternationalizationString.Close)).Show (); + // }); + //} + + Application.RunOnMainThread (() => { + new Alert ("", "Bind failed!", Language.StringByID (R.MyInternationalizationString.Close)).Show (); + }); } void loadHomeLists () { - var requestJson2 = Newtonsoft.Json.JsonConvert.SerializeObject (new HomeListObj ()); - var revertObj2 = MainPage.RequestHttps ("HomeList", requestJson2); - if (revertObj2.StateCode == "SUCCESS") { - var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<List<RegionInfoRes>> (revertObj2.ResponseData.ToString ()); - UserConfig.Instance.HomeLists = responseDataObj; - UserConfig.Instance.SaveUserConfig (); + var requestObj2 = new GetHomePagerObj (); + requestObj2.ReqDto.LoginAccessToken = MainPage.LoginUser.LoginTokenString; + var requestJson2 = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj2); + var revertObj2 = MainPage.RequestHttps (API.GetHomePager, requestJson2); + if (revertObj2.StateCode.ToUpper() == "SUCCESS") { + var mResidenceRes = Newtonsoft.Json.JsonConvert.DeserializeObject<ResidenceRes> (revertObj2.ResponseData.ToString ()); + + if (mResidenceRes.PageData != null && mResidenceRes.PageData.Count > 0) { + UserConfig.Instance.HomeLists = mResidenceRes.PageData; + UserConfig.Instance.SaveUserConfig (); + } + } else { + ShowGetHomePagerErrorInfo (revertObj2.StateCode); } + } + + /// <summary> + /// + /// </summary> + /// <param name="stateCodeStr"></param> + void ShowGetHomePagerErrorInfo (string stateCodeStr) + { + string mes = ""; + //2020-01-06 寰呰ˉ鍏� + if (stateCodeStr == ErrorCode.NetworkError) { + mes = ErrorCode.NetworkError; + } else { + mes = ErrorCode.OperationFailed + ErrorCode.Reason + stateCodeStr; + + } + if (!string.IsNullOrEmpty (mes)) { + Application.RunOnMainThread (() => { + new Alert ("", mes, Language.StringByID (R.MyInternationalizationString.Close)).Show (); + }); + } + + } /// <summary> @@ -634,46 +732,112 @@ /// </summary> void ChangeHomeName (string homeID, string homeName) { - if (UserConfig.Instance.CurrentRegion.RegionName == homeName) + if (UserConfig.Instance.CurrentRegion.Name == homeName) return; - var requestObj2 = new EditHomeObj () { Id = homeID, Name = homeName }; + var requestObj2 = new EditHomeObj () { HomeId = homeID, Name = homeName }; var requestJson2 = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj2); - var revertObj2 = MainPage.RequestHttps ("EditHome", requestJson2); - if (revertObj2.StateCode == "SUCCESS") { + var revertObj2 = MainPage.RequestHttps (API.EditHome, requestJson2); + if (revertObj2.StateCode.ToUpper () == "SUCCESS") { new Alert ("", Language.StringByID (R.MyInternationalizationString.AmendTheSuccess), Language.StringByID (R.MyInternationalizationString.Close)).Show (); UserConfig.Instance.SaveUserConfig (); this.ShowHomeList (); - if (homeID == UserConfig.Instance.CurrentRegion.RegionID) { - IO.FileUtils.ReNameFoler (UserConfig.Instance.CurrentRegion.RegionName, homeName); - UserConfig.Instance.CurrentRegion.RegionName = homeName; + if (homeID == UserConfig.Instance.CurrentRegion.Id) { + IO.FileUtils.ReNameFoler (UserConfig.Instance.CurrentRegion.Name, homeName); + UserConfig.Instance.CurrentRegion.Name = homeName; } + } else { + ShowEditHomeErrorInfo (revertObj2.StateCode); } } - void ChangeHomeMACByHomeId (string homeId, string macString) + void ShowEditHomeErrorInfo (string stateCodeStr) { - var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (new EditMACByHomeId { RegionID = homeId, MAC = macString, IsReBind = false }); - var respone = MainPage.RequestHttps ("EditMACByHomeId", requestJson); - if (respone.StateCode == "SUCCESS") { + string mes = ""; + if (stateCodeStr == "NoLogin") { + mes = ErrorCode.NoLogin; + } else if (stateCodeStr == "Exist") { + mes = ErrorCode.NameExist; + } else if (stateCodeStr == "HomeIdAndTokenNoConsistent") { + mes = ErrorCode.HomeIdAndTokenNoConsistent; + } else if (stateCodeStr == ErrorCode.NetworkError) { + mes = ErrorCode.NetworkError; + } else { + //RequestServerFailed + //mes = ErrorCode.AddFailed; + mes = ErrorCode.OperationFailed + ErrorCode.Reason + stateCodeStr; + + } + if (!string.IsNullOrEmpty (mes)) { + Application.RunOnMainThread (() => { + new Alert ("", mes, Language.StringByID (R.MyInternationalizationString.Close)).Show (); + }); + } + } + + void ChangeHomeMACByHomeId (string homeId, string macString, string oldMacString) + { + var mUpdateMacObj = new UpdateMacObj () { + LoginAccessToken = MainPage.LoginUser.LoginTokenString, + HomeId = homeId, + NewMac = macString, + OldMac = oldMacString + }; + var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (mUpdateMacObj); + //var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (new EditMACByHomeId { RegionID = homeId, MAC = macString, IsReBind = false }); + var respone = MainPage.RequestHttps (API.UpdateMac, requestJson); + if (respone.StateCode.ToUpper() == "SUCCESS") { new Alert ("", Language.StringByID (R.MyInternationalizationString.AmendTheSuccess), Language.StringByID (R.MyInternationalizationString.Close)).Show (); UserConfig.Instance.SaveUserConfig (); this.ShowHomeList (); + } else { + //2020-01-06 閿欒鎻愮ず + ShowUpdateMacErrorInfo (respone.StateCode); + } } + + /// <summary> - /// 淇敼浣忓畢mac + //* (1)Success 鍒� [璋冪敤姝ゆ帴鍙f搷浣滄垚鍔焆, ResponseData鍒欎负null<br/> + //* (2)ParameterOrEmpty,鍒欏搷搴斿瓧娈典腑 [ErrorInfo] 涓洪敊璇俊鎭�, ResponseData鍒欎负null<br/> + //* (3)NoLogin,鍒欏搷搴斿瓧娈典腑 [ErrorInfo] 涓洪敊璇俊鎭负 [鏃犳晥鐧诲綍Token!]<br/> + //* (4)NoRecord,鍒欏搷搴斿瓧娈典腑 [ErrorInfo] 涓洪敊璇俊鎭负 [鏈埌鐩稿叧璁板綍, 璇风‘璁ゆ偍鎻愪氦鍙傛暟鏄惁姝g‘!]<br/> + //* (5)NoBind,鍒欏搷搴斿瓧娈典腑 [ErrorInfo] 涓洪敊璇俊鎭负 [褰撳墠鎻愪氦HomeId涓庡綋鍓峅ldMac灏氫笉瀛樺湪缁戝畾鍏崇郴!]<br/> /// </summary> - void ChangeHomeMAC (int macID, string macString) + /// <param name="stateCodeStr"></param> + void ShowUpdateMacErrorInfo (string stateCodeStr) { - var requestObj2 = new EditMACByONObj { Id = macID, MAC = macString }; - var requestJson2 = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj2); - var revertObj2 = MainPage.RequestHttps ("EditMACByON", requestJson2); - if (revertObj2.StateCode == "SUCCESS") { - new Alert ("", Language.StringByID (R.MyInternationalizationString.AmendTheSuccess), Language.StringByID (R.MyInternationalizationString.Close)).Show (); - UserConfig.Instance.SaveUserConfig (); - this.ShowHomeList (); + string mes = ""; + //2020-01-06 浠hˉ鍏� + if (stateCodeStr == "NoBind") { + mes = ErrorCode.NoBind; + } else if (stateCodeStr == ErrorCode.NetworkError) { + mes = ErrorCode.NetworkError; + } else { + mes = ErrorCode.OperationFailed + ErrorCode.Reason + stateCodeStr; } + if (!string.IsNullOrEmpty (mes)) { + Application.RunOnMainThread (() => { + new Alert ("", mes, Language.StringByID (R.MyInternationalizationString.Close)).Show (); + }); + } + } + + ///// <summary> + ///// 淇敼浣忓畢mac + ///// </summary> + //void ChangeHomeMAC (int macID, string macString) + //{ + // var requestObj2 = new EditMACByONObj { Id = macID, MAC = macString }; + // var requestJson2 = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj2); + // var revertObj2 = MainPage.RequestHttps ("EditMACByON", requestJson2); + // if (revertObj2.StateCode.ToUpper() == "SUCCESS") { + // new Alert ("", Language.StringByID (R.MyInternationalizationString.AmendTheSuccess), Language.StringByID (R.MyInternationalizationString.Close)).Show (); + // UserConfig.Instance.SaveUserConfig (); + // this.ShowHomeList (); + // } + //} } } \ No newline at end of file -- Gitblit v1.8.0