From be95e839f40eb3ddf64706b60cba6dfcf4fad5e5 Mon Sep 17 00:00:00 2001 From: JLChen <551775569@qq.com> Date: 星期五, 03 四月 2020 14:31:44 +0800 Subject: [PATCH] 2020-04-03 1.去掉登录前ping百度域名的网络监测。 --- Crabtree/SmartHome/UI/SimpleControl/Phone/Register/Databackup.cs | 559 ++++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 440 insertions(+), 119 deletions(-) diff --git a/Crabtree/SmartHome/UI/SimpleControl/Phone/Register/Databackup.cs b/Crabtree/SmartHome/UI/SimpleControl/Phone/Register/Databackup.cs index 22d7e54..968c699 100644 --- a/Crabtree/SmartHome/UI/SimpleControl/Phone/Register/Databackup.cs +++ b/Crabtree/SmartHome/UI/SimpleControl/Phone/Register/Databackup.cs @@ -32,7 +32,7 @@ X = Application.GetRealWidth (90), Width = Application.GetRealWidth (640 - 180), TextAlignment = TextAlignment.Center, - Text = UserConfig.Instance.CurrentRegion.RegionName + " " + Language.StringByID (R.MyInternationalizationString.Backup), + Text = UserConfig.Instance.CurrentRegion.Name + " " + Language.StringByID (R.MyInternationalizationString.Backup), TextSize = 19, TextColor = SkinStyle.Current.TextColor1, }; @@ -78,20 +78,20 @@ Gravity = Gravity.CenterVertical, UnSelectedImagePath = "Item/Point.png", SelectedImagePath = "Item/Point.png", - Visible = homeTemp.RegionID != UserConfig.Instance.CurrentRegion.RegionID + Visible = homeTemp.Id != UserConfig.Instance.CurrentRegion.Id }; rowView.AddChidren (btnPoint); var btnName = new Button () { Width = Application.GetRealWidth (550), - Text = homeTemp.RegionName, + Text = homeTemp.Name, TextAlignment = TextAlignment.CenterLeft, X = Application.GetRealWidth (90), TextColor = SkinStyle.Current.TextColor1, }; rowView.AddChidren (btnName); - if (homeTemp.RegionID == UserConfig.Instance.CurrentRegion.RegionID) { + if (homeTemp.Id == UserConfig.Instance.CurrentRegion.Id) { Button btnCheck = new Button () { X = Application.GetRealWidth (20), Y = Application.GetRealHeight (25), @@ -112,13 +112,13 @@ try { var backuplist = IO.FileUtils.ReadFiles (); int index = 0; - string oldRegionRootPath = IO.FileUtils.CreateRegionBackup (UserConfig.Instance.CurrentRegion.RegionName); + string oldRegionRootPath = IO.FileUtils.CreateRegionBackup (UserConfig.Instance.CurrentRegion.Id); IO.FileUtils.DeleteRegionFiles (oldRegionRootPath); foreach (var fileName in backuplist) { System.IO.FileInfo fileInfo = new System.IO.FileInfo (IO.FileUtils.RootPath + fileName); if (fileInfo.Exists) { fileInfo.MoveTo (oldRegionRootPath + fileName); - Console.WriteLine ("move file : " + fileName); + Utlis.WriteLine ("move file : " + fileName); } index++; Application.RunOnMainThread (() => { @@ -127,7 +127,7 @@ }); } IO.FileUtils.DeleteAllFile (); - string newRegionRootPath = IO.FileUtils.CreateRegionBackup (homeTemp.RegionName); + string newRegionRootPath = IO.FileUtils.CreateRegionBackup (homeTemp.Id); IO.FileUtils.RestoreRegionFiles (newRegionRootPath); UserConfig.Instance.RefreshUserConfig (); UserConfig.Instance.CurrentRegion = homeTemp; @@ -140,14 +140,14 @@ new Alert ("", Language.StringByID (R.MyInternationalizationString.SwitchRegionSuccessfully), Language.StringByID (R.MyInternationalizationString.Close)).Show (); this.DatabackupShow (); - EquipmentPublicClass.CheckLinkRemote (2); + EquipmentPublicClass.CheckLinkRemote (UserConfig.Instance.internetStatus); }); } catch (Exception ex) { Application.RunOnMainThread (() => { new Alert ("", Language.StringByID (R.MyInternationalizationString.CheckInternet), Language.StringByID (R.MyInternationalizationString.Close)).Show (); }); - Console.WriteLine (ex.Message); + Utlis.WriteLine (ex.Message); } finally { Application.RunOnMainThread (() => { MainPage.Loading.Hide (); @@ -298,17 +298,51 @@ Application.RunOnMainThread (() => { MainPage.Loading.Start ("Please wait..."); }); - GetUserFolderObj requestObj = new GetUserFolderObj () { LevelID = UserConfig.Instance.CurrentRegion.RegionID }; + var requestObj = new GetHomeDataBackupPaggerObj () { + HomeId = UserConfig.Instance.CurrentRegion.Id, + LoginAccessToken = MainPage.LoginUser.LoginTokenString + }; + string urlHead = MainPage.RequestHttpsHost; + if (requestObj.IsOtherAccountCtrl) { + urlHead = UserConfig.Instance.MasterAccountRequestBaseUrl; + requestObj.LoginAccessToken = UserConfig.Instance.MasterAccountToken; + } + + //GetUserFolderObj requestObj = new GetUserFolderObj () { LevelID = UserConfig.Instance.CurrentRegion.Id }; var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj); - var revertObj = MainPage.RequestHttps ("GetUserFolder", requestJson,true,false); - if (revertObj.StateCode == "SUCCESS") { - var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<List<FolderRes>> (revertObj.ResponseData.ToString ()); + var revertObj = MainPage.RequestHttps (API.GetHomeDataBackupPagger, requestJson, urlHead); + if (revertObj.StateCode.ToUpper () == "SUCCESS") { + var data = Newtonsoft.Json.JsonConvert.DeserializeObject<GetBackupListResult> (revertObj.ResponseData.ToString ()); + //var list = new List<BackupListNameInfo> (); + //foreach (var data2 in data.PageData) { + // if (ZigbeeUniqueId != null && data2.GatewayUniqueId != ZigbeeUniqueId) { + // continue; + // } + // if (getLogBackup == false && data2.BackupName == LogBackupName) { + // //涓嶈幏鍙朙og澶囦唤 + // continue; + // } + // list.Add (data2); + //} + + + //var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<List<FolderRes>> (revertObj.ResponseData.ToString ()); + if (data == null) return; + Application.RunOnMainThread (() => { - foreach(var folder in responseDataObj) - { - addRow (folder.FolderName,folder.FolderID); + foreach (var folder in data.PageData) { + addRow (folder.BackupName, folder.Id); } }); + } else { + //2020-01-11 鍒锋柊涓�娆asterToken + if (requestObj.IsOtherAccountCtrl) { + //if (revertObj.StateCode == "ParameterOrEmpty" || revertObj.StateCode == "NoLogin" || revertObj.StateCode == "HomeIdAndTokenNoConsistent") { + if (revertObj.StateCode != ErrorCode.NetworkError) { + UserConfig.Instance.CheckIfNeedGetMasterAccountToken (); + } + } + MainPage.ShowAlertOnMainThread ("Failed to get backup data list!"); } //var groupNames = service_backup.GetUserGroup (MainPage.LoginUser.MasterID, 0); //Application.RunOnMainThread (() => { @@ -328,7 +362,7 @@ }); } - void addRow (string groupName,int folderID) + void addRow (string groupName, string folderID) { var rowView = new RowLayout () { Height = Application.GetRealHeight (110), @@ -350,23 +384,7 @@ Alert alert = new Alert ("", Language.StringByID (R.MyInternationalizationString.AreYouSureToDeleteFile), Language.StringByID (R.MyInternationalizationString.Cancel), Language.StringByID (R.MyInternationalizationString.Confrim)); alert.ResultEventHandler += ( sender2, e2) => { if (e2) { - MainPage.Loading.Start ("Please wait..."); - System.Threading.Tasks.Task.Run (() => { - try { - DeleteFolderDataObj requestObj = new DeleteFolderDataObj () { Id = folderID }; - var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj); - var revertObj = MainPage.RequestHttps ("DeleteFolderData", requestJson); - if (revertObj.StateCode == "SUCCESS") { - Application.RunOnMainThread (() => { - DatabackupShow (); - }); - } - } catch { } finally { - Application.RunOnMainThread (() => { - MainPage.Loading.Hide (); - }); - } - }); + DeleteFolderData (folderID); } }; alert.Show (); @@ -400,23 +418,7 @@ Alert alert = new Alert ("", Language.StringByID (R.MyInternationalizationString.AreYouSureToDeleteFile), Language.StringByID (R.MyInternationalizationString.Cancel), Language.StringByID (R.MyInternationalizationString.Confrim)); alert.ResultEventHandler += ( sender2, e2) => { if (e2) { - MainPage.Loading.Start ("Please wait..."); - System.Threading.Tasks.Task.Run (() => { - try { - DeleteFolderDataObj requestObj = new DeleteFolderDataObj () { Id = folderID }; - var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj); - var revertObj = MainPage.RequestHttps ("DeleteFolderData", requestJson); - if (revertObj.StateCode == "SUCCESS") { - Application.RunOnMainThread (() => { - DatabackupShow (); - }); - } - } catch { } finally { - Application.RunOnMainThread (() => { - MainPage.Loading.Hide (); - }); - } - }); + DeleteFolderData (folderID); } }; alert.Show (); @@ -450,6 +452,122 @@ } /// <summary> + /// 鍒犻櫎鏌愪釜澶囦唤 + /// </summary> + /// <param name="folderID"></param> + void DeleteFolderData (string folderID) + { + MainPage.Loading.Start ("Please wait..."); + System.Threading.Tasks.Task.Run (() => { + try { + var requestObj = new DelHomeAppGatewayNameObj () { + BackupClassId = folderID, + HomeId = UserConfig.Instance.CurrentRegion.Id, + LoginAccessToken = MainPage.LoginUser.LoginTokenString + }; + string urlHead = MainPage.RequestHttpsHost; + if (requestObj.IsOtherAccountCtrl) { + urlHead = UserConfig.Instance.MasterAccountRequestBaseUrl; + requestObj.LoginAccessToken = UserConfig.Instance.MasterAccountToken; + } + + //DeleteFolderDataObj requestObj = new DeleteFolderDataObj () { Id = folderID }; + var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj); + var revertObj = MainPage.RequestHttps (API.DelHomeAppGatewayName, requestJson, urlHead); + if (revertObj.StateCode.ToUpper () == "SUCCESS") { + Application.RunOnMainThread (() => { + DatabackupShow (); + }); + } else { + ShowDelErrorInfo (revertObj.StateCode); + } + } catch { } finally { + Application.RunOnMainThread (() => { + MainPage.Loading.Hide (); + }); + } + }); + + } + + //2020-01-11 + /// <summary> + /// 鍒犻櫎鏌愪釜澶囦唤 + /// </summary> + /// <param name="folderID"></param> + void DeleteFolderDataAfterUploadFailed (string folderID) + { + Application.RunOnMainThread (() => { + MainPage.Loading.Start ("Please wait..."); + }); + + + try { + var requestObj = new DelHomeAppGatewayNameObj () { + BackupClassId = folderID, + HomeId = UserConfig.Instance.CurrentRegion.Id, + LoginAccessToken = MainPage.LoginUser.LoginTokenString + }; + string urlHead = MainPage.RequestHttpsHost; + if (requestObj.IsOtherAccountCtrl) { + urlHead = UserConfig.Instance.MasterAccountRequestBaseUrl; + requestObj.LoginAccessToken = UserConfig.Instance.MasterAccountToken; + } + + //DeleteFolderDataObj requestObj = new DeleteFolderDataObj () { Id = folderID }; + var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj); + var revertObj = MainPage.RequestHttps (API.DelHomeAppGatewayName, requestJson, urlHead); + if (revertObj.StateCode.ToUpper () == "SUCCESS") { + //鍒犻櫎鎴愬姛 + } else { + //鍒犻櫎澶辫触 + } + } catch { } finally { + Application.RunOnMainThread (() => { + MainPage.Loading.Hide (); + }); + } + + + } + + /// <summary> + /// (2)ParameterOrEmpty,鍒欏搷搴斿瓧娈典腑[ErrorInfo]涓洪敊璇俊鎭�,ResponseData鍒欎负null + //3)NoLogin,鍒欏搷搴斿瓧娈典腑 [ErrorInfo] 涓洪敊璇俊鎭负 [鏃犳晥鐧诲綍Token!] + //(5)NoRecord,鍒欏搷搴斿瓧娈典腑 [ErrorInfo] 涓洪敊璇俊鎭负 [纭繚鎮ㄦ墍鎻愪氦 [椤圭洰 (浣忓畢)Id涓嶅瓨鍦�!] + //(6)BackupClassIdNoIsYou, 鍒欏搷搴斿瓧娈典腑 [ErrorInfo]涓洪敊璇俊鎭负 [鎮ㄦ墍澶囨敞鍚嶄富閿� = XXXX骞朵笉灞炰簬鎮ㄥ綋鍓嶄綇瀹�:XXXX] + //(7)NoPermission, 鍒欏搷搴斿瓧娈典腑 [ErrorInfo]涓洪敊璇俊鎭负 [鎮ㄥ苟涓嶅叿鏈夋鍒嗕韩鑰呮浣忓畢鐨勬潈闄�!] + //(8)InsufficientAuthority, 鍒欏搷搴斿瓧娈典腑 [ErrorInfo]涓洪敊璇俊鎭负 [鎮ㄥ苟涓嶅叿鏈夋鍒嗕韩鑰呮浣忓畢鐨勫畬鍏ㄦ帶鍒舵潈闄�!] + //(9)HomeIdAndTokenNoConsistent, 鍒欏搷搴斿瓧娈典腑 [ErrorInfo]涓洪敊璇俊鎭负 [鎮ㄥ綋鍓峊oken涓庝綘褰撳墠鎺у埗鐨凥omeId涓嶄竴鑷�!] + //(10)DeliveryBackNoUpdateDel, 鍒欏搷搴斿瓧娈典腑 [ErrorInfo]涓洪敊璇俊鎭负 [姝ゅ墠鎻愪氦鏂囦欢澶笽d鏄睘浜庝氦浠樺浠�, 涓嶈兘杩涜鏇存柊鍒犻櫎!] + /// </summary> + /// <param name="stateCodeStr"></param> + void ShowDelErrorInfo (string stateCodeStr) + { + string mes = ""; + if (stateCodeStr == "HomeIdAndTokenNoConsistent") { + //Token 楠岃瘉澶辫触 + mes = ErrorCode.HomeIdAndTokenNoConsistent; + } else if (stateCodeStr == "DeliveryBackNoUpdateDel") { + //浜や粯澶囦唤, 涓嶈兘鍒犻櫎! + mes = ErrorCode.DeliveryBackNoUpdateDel; + } 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> /// 鐢ㄦ埛澶囦唤鏂囦欢 /// </summary> void userBakeupFile (string groupName) @@ -458,60 +576,177 @@ //Alert alert = new Alert ("", Language.StringByID (R.MyInternationalizationString.SureToBackupYourthisFile), Language.StringByID (R.MyInternationalizationString.Cancel), Language.StringByID (R.MyInternationalizationString.Confrim)); //alert.ResultEventHandler += (object sender2, bool e2) => { - //if (e2) { - MainPage.Loading.Start ("Upload..."); + //if (e2) { + MainPage.Loading.Start ("Upload..."); - System.Threading.Tasks.Task.Run (() => { - try { - AddFolderObj requestObj = new AddFolderObj () { LevelID = UserConfig.Instance.CurrentRegion.RegionID ,Name = groupName }; - var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj); - var revertObj = MainPage.RequestHttps ("AddFolder", requestJson); - if (revertObj.StateCode == "SUCCESS") { - var addFolderID = Convert.ToInt32 (revertObj.ResponseData); - var backuplist = IO.FileUtils.ReadFiles (); - int index = 0; - foreach (var fileName in backuplist) { - index++; - /// <summary> - /// 濡傛灉鏄壒娈婄殑娉ㄥ唽鐧婚檰鏂囦欢锛屽垯涓嶉渶瑕佸浠藉埌鏈嶅姟鍣� - /// </summary> - if (fileName == UserInfo.GlobalRegisterFile) { - continue; - } - AddUserBackupObj requestObj2 = new AddUserBackupObj () { LevelID = Convert.ToInt32(revertObj.ResponseData), Name = fileName, DetailByte = IO.FileUtils.ReadFile (fileName) }; - var requestJson2 = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj2); - var revertObj2 = MainPage.RequestHttps ("AddUserBackup", requestJson2); - if (revertObj2.StateCode == "SUCCESS") { - Application.RunOnMainThread (() => { - int pro = (int)(index * 1.0 / backuplist.Count * 100); - MainPage.Loading.Text = pro.ToString () + "%"; - }); - } - } - } + System.Threading.Tasks.Task.Run (() => { + try { - } catch (Exception ex) { - Shared.Application.RunOnMainThread (() => { - new Alert ("", Language.StringByID (R.MyInternationalizationString.CheckInternet), - Language.StringByID (R.MyInternationalizationString.Close)).Show (); - Console.WriteLine (ex.Message); - }); - } finally { - Shared.Application.RunOnMainThread (() => { - MainPage.Loading.Hide (); - DatabackupShow (); - }); - } + //if (string.IsNullOrEmpty (UserConfig.Instance.GatewayMAC)) return; + //2020-01-11 娌$粦瀹歁AC涓嶅厑璁镐笂浼犲浠� + if (!UserConfig.Instance.CheckHomeGateways () || string.IsNullOrEmpty (UserConfig.Instance.CurrentRegion.HomeGateways [0].GatewayUniqueId)) { + MainPage.ShowAlertOnMainThread (ErrorCode.BindGatewayFirst); + return; + } + + var requestObj = new AddHomeAppGatewayNameObj () { + HomeId = UserConfig.Instance.CurrentRegion.Id, + BackupName = groupName, + LoginAccessToken = MainPage.LoginUser.LoginTokenString, + GatewayUniqueId = UserConfig.Instance.GatewayMAC + }; + string urlHead = MainPage.RequestHttpsHost; + if (requestObj.IsOtherAccountCtrl) { + urlHead = UserConfig.Instance.MasterAccountRequestBaseUrl; + requestObj.LoginAccessToken = UserConfig.Instance.MasterAccountToken; + } + + //AddFolderObj requestObj = new AddFolderObj () { LevelID = UserConfig.Instance.CurrentRegion.Id ,Name = groupName }; + var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj); + var revertObj = MainPage.RequestHttps (API.AddHomeAppGatewayName, requestJson, urlHead); + if (revertObj.StateCode.ToUpper () == "SUCCESS") { + var DATA = Newtonsoft.Json.JsonConvert.DeserializeObject<AddBackupNameResult> (revertObj.ResponseData.ToString()); + var addFolderID = DATA.BackupClassId; + UpLoadBackupFileToDB (addFolderID); + + + } else { + ShowAddHomeAppGatewayNameErrorInfo (revertObj.StateCode); + + } + + } catch (Exception ex) { + Shared.Application.RunOnMainThread (() => { + new Alert ("", Language.StringByID (R.MyInternationalizationString.CheckInternet), + Language.StringByID (R.MyInternationalizationString.Close)).Show (); + Utlis.WriteLine (ex.Message); }); + } finally { + Shared.Application.RunOnMainThread (() => { + MainPage.Loading.Hide (); + DatabackupShow (); + }); + } + }); // } //}; //alert.Show (); } /// <summary> + ///(1)Success 鍒橻璋冪敤姝ゆ帴鍙f搷浣滄垚鍔焆,ResponseData鍒欎负null + //(2)ParameterOrEmpty,鍒欏搷搴斿瓧娈典腑 [ErrorInfo] 涓洪敊璇俊鎭�, ResponseData鍒欎负null + //(3)NoLogin,鍒欏搷搴斿瓧娈典腑 [ErrorInfo] 涓洪敊璇俊鎭负 [鏃犳晥鐧诲綍Token!] + //(4)NoRecord,鍒欏搷搴斿瓧娈典腑 [ErrorInfo] 涓洪敊璇俊鎭负 [纭繚鎮ㄦ墍鎻愪氦 [椤圭洰 (浣忓畢)Id涓嶅瓨鍦�!] + //(5)Exist, 鍒欏搷搴斿瓧娈典腑 [ErrorInfo]涓洪敊璇俊鎭负 [鎮ㄥ湪浣忓畢: XXX, 褰撳墠澶囦唤鍚�: XXXX宸插瓨鍦�, 璇锋崲涓浠藉啀鎻愪氦!] + //(6)NoBind, 鍒欏搷搴斿瓧娈典腑 [ErrorInfo]涓洪敊璇俊鎭负 [缃戝叧鐨勫敮涓�Id = XXX锛屼笌浣忓畢: XXXX骞朵笉瀛樺湪缁戝畾鍏崇郴!] + //(7)NoPermission, 鍒欏搷搴斿瓧娈典腑 [ErrorInfo]涓洪敊璇俊鎭负 [鎮ㄥ苟涓嶅叿鏈夋鍒嗕韩鑰呮浣忓畢鐨勬潈闄�!] + + //(8)InsufficientAuthority, 鍒欏搷搴斿瓧娈典腑 [ErrorInfo]涓洪敊璇俊鎭负 [鎮ㄥ苟涓嶅叿鏈夋鍒嗕韩鑰呮浣忓畢鐨勫畬鍏ㄦ帶鍒舵潈闄�!] + //(9)HomeIdAndTokenNoConsistent, 鍒欏搷搴斿瓧娈典腑 [ErrorInfo]涓洪敊璇俊鎭负 [鎮ㄥ綋鍓峊oken涓庝綘褰撳墠鎺у埗鐨凥omeId涓嶄竴鑷�!] + /// </summary> + /// <param name="stateCodeStr"></param> + void ShowAddHomeAppGatewayNameErrorInfo (string stateCodeStr) + { + string mes = ""; + if (stateCodeStr == "Exist") { + //澶囦唤鍚嶅凡瀛樺湪 + mes = ErrorCode.NameExist; + } else if (stateCodeStr == "HomeIdAndTokenNoConsistent") { + //Token 楠岃瘉澶辫触 + mes = ErrorCode.HomeIdAndTokenNoConsistent; + } 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> + /// 涓婁紶澶囦唤鏂囦欢 + /// </summary> + /// <param name="mBackupClassId"></param> + void UpLoadBackupFileToDB (string mBackupClassId) + { + + var backuplist = IO.FileUtils.ReadFiles (); + int index = 0; + foreach (var fileName in backuplist) { + index++; + /// <summary> + /// 濡傛灉鏄壒娈婄殑娉ㄥ唽鐧婚檰鏂囦欢锛屽垯涓嶉渶瑕佸浠藉埌鏈嶅姟鍣� + /// </summary> + if (fileName == UserInfo.GlobalRegisterFile) { + continue; + } + //鏁寸悊鏁版嵁 + var datainfo = new FileInfoData (); + datainfo.BackupFileName = fileName; + datainfo.BackupFileContent = Shared.IO.FileUtils.ReadFile (fileName); + + var list = new List<FileInfoData> (); + list.Add (datainfo); + + var upData = new UploadHomeAppGatewaySubFilesObj (); + upData.HomeId = UserConfig.Instance.CurrentRegion.Id; + upData.BackupClassId = mBackupClassId; + upData.UploadSubFileLists = list; + //鑾峰彇鎺у埗涓讳汉璐﹀彿鐨凾oken + upData.LoginAccessToken = MainPage.LoginUser.LoginTokenString; + string urlHead = MainPage.RequestHttpsHost; + if (upData.IsOtherAccountCtrl) { + urlHead = UserConfig.Instance.MasterAccountRequestBaseUrl; + upData.LoginAccessToken = UserConfig.Instance.MasterAccountToken; + } + + //AddUserBackupObj requestObj2 = new AddUserBackupObj () { LevelID = Convert.ToInt32 (revertObj.ResponseData), Name = fileName, DetailByte = IO.FileUtils.ReadFile (fileName) }; + var requestJson2 = Newtonsoft.Json.JsonConvert.SerializeObject (upData); + var revertObj2 = MainPage.RequestHttps (API.UploadHomeAppGatewaySubFiles, requestJson2, urlHead); + if (revertObj2.StateCode.ToUpper () == "SUCCESS") { + //index++; + Application.RunOnMainThread (() => { + int pro = (int)(index * 1.0 / backuplist.Count * 100); + MainPage.Loading.Text = pro.ToString () + "%"; + }); + } else { + //鎻愮ず閿欒 + break; + } + } + if (index != backuplist.Count) { + //2020-01-11 + DeleteFolderDataAfterUploadFailed (mBackupClassId); + Shared.Application.RunOnMainThread (() => { + new Alert ("", "Upload failed!", Language.StringByID (R.MyInternationalizationString.Close)).Show (); + MainPage.Loading.Hide (); + }); + + } + + //Shared.Application.RunOnMainThread (() => { + // if (index == 0) { + // new Alert ("", "Upload failed!", Language.StringByID (R.MyInternationalizationString.Close)).Show (); + // } + + // MainPage.Loading.Hide (); + //}); + } + + + + + /// <summary> /// 鐢ㄦ埛鎭㈠鏂囦欢 /// </summary> - public void UserBakeupFileDetailedInformation (int folderID) + public void UserBakeupFileDetailedInformation (string BackupClassId) { //鏄惁纭畾鎭㈠璇ユ枃浠舵暟鎹俊鎭� Alert alert = new Alert ("", Language.StringByID (R.MyInternationalizationString.SureToRestoreFileInformation), Language.StringByID (R.MyInternationalizationString.Cancel), Language.StringByID (R.MyInternationalizationString.Confrim)); @@ -527,48 +762,134 @@ } IO.FileUtils.DeleteFile (fileName); } + + var requestObj2 = new GetHomeDataBackupUploadListPaggerObj (); + requestObj2.HomeId = UserConfig.Instance.CurrentRegion.Id; + requestObj2.BackupClassId = BackupClassId; + requestObj2.PageSetting.PageSize = 999999; + requestObj2.PageSetting.Page = 1; + //鑾峰彇鎺у埗涓讳汉璐﹀彿鐨凾oken + requestObj2.LoginAccessToken = MainPage.LoginUser.LoginTokenString; + string urlHead = MainPage.RequestHttpsHost; + if (requestObj2.IsOtherAccountCtrl) { + urlHead = UserConfig.Instance.MasterAccountRequestBaseUrl; + requestObj2.LoginAccessToken = UserConfig.Instance.MasterAccountToken; + } + //鑾峰彇鎵�鏈夋枃浠剁粍鍚� - var requestObj2 = new UserBackupListObj () { LevelID = folderID }; + //var requestObj2 = new UserBackupListObj () { LevelID = folderID }; var requestJson2 = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj2); - var revertObj2 = MainPage.RequestHttps ("UserBackupList", requestJson2); - if (revertObj2.StateCode == "SUCCESS") { - var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<List<BackupInfoRes>> (revertObj2.ResponseData.ToString ()); + var revertObj2 = MainPage.RequestHttps (API.GetHomeDataBackupUploadListPagger, requestJson2, urlHead); + if (revertObj2.StateCode.ToUpper() == "SUCCESS") { + var fileListData = Newtonsoft.Json.JsonConvert.DeserializeObject<LoadBackInfoResult> (revertObj2.ResponseData.ToString ()); + var responseDataObj = fileListData.PageData; + ////鑾峰彇鏂囦欢鍚嶅瓧 + //List<string> listFileName = new List<string> (); + //foreach (LoadBackupFileNameInfo file in fileListData.PageData) { + // listFileName.Add (file.BackupFileName); + //} + //var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<List<BackupInfoRes>> (revertObj2.ResponseData.ToString ()); + + var mDownLoad = new DownloadSomeDataBackupObj (); + mDownLoad.HomeId = UserConfig.Instance.CurrentRegion.Id; + mDownLoad.BackupClassId = BackupClassId; + //鑾峰彇鎺у埗涓讳汉璐﹀彿鐨凾oken + mDownLoad.LoginAccessToken = MainPage.LoginUser.LoginTokenString; + string mUrlHead = MainPage.RequestHttpsHost; + if (mDownLoad.IsOtherAccountCtrl) { + urlHead = UserConfig.Instance.MasterAccountRequestBaseUrl; + mDownLoad.LoginAccessToken = UserConfig.Instance.MasterAccountToken; + } + int index = 0; + //foreach (var file in responseDataObj) { + // if (file.BackupFileName == "null" || "UserConfig" == file.BackupFileName) { + // continue; + // } + // mDownLoad.BackupFileName = file.BackupFileName; + // //var requestObj3 = new BackupDetailObj () { Id = file.Id }; + // var requestJson3 = Newtonsoft.Json.JsonConvert.SerializeObject (mDownLoad); + // var revertObj3 = MainPage.RequestHttpsReturnByte (API.DownloadSomeDataBackup, requestJson3, false, mUrlHead); + // if (revertObj3 != null) { + // index++; + // IO.FileUtils.WriteFileByBytes (file.BackupFileName, revertObj3); + // Application.RunOnMainThread (() => { + // int pro = (int)(index * 1.0 / responseDataObj.Count * 100); + // MainPage.Loading.Text = pro.ToString () + "%"; + // }); + // } else { + + + // } + + // //if (revertObj3.StateCode.ToUpper() == "SUCCESS") { + // // var jsonBytes = Newtonsoft.Json.JsonConvert.SerializeObject (revertObj3.ResponseData); + // // var byresss = Newtonsoft.Json.JsonConvert.DeserializeObject<byte[]> (jsonBytes); + // // index++; + // // //鏂板鍔犱簡浣忓畢鍖哄煙锛屾棫鐨勫浠芥暟鎹病鏈夊尯鍩熷睘鎬э紝褰撹幏鍙栧埌杩欎釜鏂囦欢鏃讹紝鎶婂綋鍓嶅埌浣忓畢淇℃伅鏇村埌褰撳墠澶囦唤鍒版暟鎹噷闈� + // // if ("UserConfig" == file.BackupFileName){ + // // //var regionTemp = UserConfig.Instance.CurrentRegion; + // // //UserConfig.Instance.RefreshUserConfig (); + // // //UserConfig.Instance.CurrentRegion = regionTemp; + // // //UserConfig.Instance.SaveUserConfig (); + // // ////UserConfig.Instance.GatewayList + // // continue; + // // } + // // IO.FileUtils.WriteFileByBytes (file.BackupFileName, byresss); + // // Application.RunOnMainThread (() => { + // // int pro = (int)(index * 1.0 / responseDataObj.Count * 100); + // // MainPage.Loading.Text = pro.ToString () + "%"; + // // }); + // //} else { + // // //閿欒鎻愮ず + + // //} + //} foreach (var file in responseDataObj) { - if (file.FileName == "null" || "UserConfig" == file.FileName) { + index++; + if (file.BackupFileName == "null" || "UserConfig" == file.BackupFileName) { continue; } - - var requestObj3 = new BackupDetailObj () { Id = file.Id }; - var requestJson3 = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj3); - var revertObj3 = MainPage.RequestHttps ("BackupDetail", requestJson3); - if (revertObj3.StateCode == "SUCCESS") { - var jsonBytes = Newtonsoft.Json.JsonConvert.SerializeObject (revertObj3.ResponseData); - var byresss = Newtonsoft.Json.JsonConvert.DeserializeObject<byte[]> (jsonBytes); - index++; - //鏂板鍔犱簡浣忓畢鍖哄煙锛屾棫鐨勫浠芥暟鎹病鏈夊尯鍩熷睘鎬э紝褰撹幏鍙栧埌杩欎釜鏂囦欢鏃讹紝鎶婂綋鍓嶅埌浣忓畢淇℃伅鏇村埌褰撳墠澶囦唤鍒版暟鎹噷闈� - if ("UserConfig" == file.FileName){ - //var regionTemp = UserConfig.Instance.CurrentRegion; - //UserConfig.Instance.RefreshUserConfig (); - //UserConfig.Instance.CurrentRegion = regionTemp; - //UserConfig.Instance.SaveUserConfig (); - ////UserConfig.Instance.GatewayList - continue; - } - IO.FileUtils.WriteFileByBytes (file.FileName, byresss); + mDownLoad.BackupFileName = file.BackupFileName; + //var requestObj3 = new BackupDetailObj () { Id = file.Id }; + var requestJson3 = Newtonsoft.Json.JsonConvert.SerializeObject (mDownLoad); + var revertObj3 = MainPage.RequestHttpsReturnByte (API.DownloadSomeDataBackup, requestJson3, false, mUrlHead); + if (revertObj3 != null) { + + IO.FileUtils.WriteFileByBytes (file.BackupFileName, revertObj3); Application.RunOnMainThread (() => { int pro = (int)(index * 1.0 / responseDataObj.Count * 100); MainPage.Loading.Text = pro.ToString () + "%"; }); + } else { + break; } + } + + + if (index != responseDataObj.Count) { + //鍒犻櫎宸茬粡涓嬭浇鐨勬枃浠朵釜鏁伴敊璇� + var fileNames2 = IO.FileUtils.ReadFiles (); + foreach (var fileName in fileNames2) { + if (fileName == UserInfo.GlobalRegisterFile) { + continue; + } + IO.FileUtils.DeleteFile (fileName); + } + + MainPage.ShowAlertOnMainThread ("Download failed!"); + + return; + } + MainPage.LoginUser.SaveUserInfo (); Room.InitAllRoom (); Application.RunOnMainThread (() => { this.RemoveFromParent (); CommonPage.IsRemote = false; UserMiddle.Init (); - EquipmentPublicClass.CheckLinkRemote (2); + EquipmentPublicClass.CheckLinkRemote (UserConfig.Instance.internetStatus); new Alert ("", Language.StringByID (R.MyInternationalizationString.RestoreFileIsSuccessfull), Language.StringByID (R.MyInternationalizationString.Close)).Show (); }); @@ -583,7 +904,7 @@ new Alert ("", Language.StringByID (R.MyInternationalizationString.CheckInternet), Language.StringByID (R.MyInternationalizationString.Close)).Show (); }); - Console.WriteLine (ex.ToString()); + Utlis.WriteLine (ex.ToString()); } finally { Shared.Application.RunOnMainThread (() => { MainPage.Loading.Hide (); -- Gitblit v1.8.0