| | |
| | | EditText etPwd; |
| | | string pwd; |
| | | string newUserId; |
| | | string newHomeId; |
| | | |
| | | Button btnSave; |
| | | Button btnClose; |
| | |
| | | /// </summary> |
| | | /// <param name="newHomeId"></param> |
| | | /// <returns></returns> |
| | | private string moveFolder2New (string newHomeId) |
| | | private string moveFolder2New (string newHomeId,string folderName = "") |
| | | { |
| | | Dictionary<string, object> dic = new Dictionary<string, object> (); |
| | | dic.Add ("backupDataType", "HDL_ON"); |
| | | dic.Add ("homeId",newHomeId); |
| | | dic.Add ("userId",newUserId); |
| | | dic.Add ("backupClassify", "USER_DEFINED_BACKUP"); |
| | | dic.Add ("folderName", "MigrateBackup" + DateTime.Now.ToString ()); |
| | | dic.Add ("tenantId", "202106"); |
| | | var requestJson = HttpUtil.GetSignRequestJson (dic); |
| | | var revertObj = MainPage.RequestHttps ("/home-wisdom/data/move/folder/save", requestJson, false, false, SeverAddr); |
| | | if(revertObj!= null) { |
| | | if(revertObj.code == "0") { |
| | | var resultObj = Newtonsoft.Json.JsonConvert.DeserializeObject<FolderObj> (revertObj.data.ToString ()); |
| | | |
| | | return resultObj.id; |
| | | try { |
| | | Dictionary<string, object> dic = new Dictionary<string, object> (); |
| | | dic.Add ("backupDataType", "HDL_ON"); |
| | | dic.Add ("homeId", newHomeId); |
| | | dic.Add ("userId", newUserId); |
| | | dic.Add ("backupClassify", "USER_DEFINED_BACKUP"); |
| | | dic.Add ("folderName", folderName == "" ? "MigrateBackup" + DateTime.Now.ToString () : folderName); |
| | | dic.Add ("tenantId", "202106"); |
| | | var requestJson = HttpUtil.GetSignRequestJson (dic); |
| | | var revertObj = MainPage.RequestHttps ("/home-wisdom/data/move/folder/save", requestJson, false, false, SeverAddr); |
| | | if (revertObj != null) { |
| | | if (revertObj.code == "0") { |
| | | var resultObj = Newtonsoft.Json.JsonConvert.DeserializeObject<FolderObj> (revertObj.data.ToString ()); |
| | | |
| | | return resultObj.id; |
| | | } |
| | | } |
| | | return ""; |
| | | } catch { |
| | | return ""; |
| | | } |
| | | return ""; |
| | | } |
| | | |
| | | |
| | | private string MoveFile2New(string newHomeId,string backupId) |
| | | private string MoveFile2New(string backupId) |
| | | { |
| | | Dictionary<string, object> dic = new Dictionary<string, object> (); |
| | | dic.Add ("backupId", backupId);//1534728347497418754//1534728860322385922 |
| | | dic.Add ("backupId", backupId); |
| | | dic.Add ("homeId", newHomeId); |
| | | dic.Add ("userId", newUserId); |
| | | dic.Add ("backupClassify", "USER_DEFINED_BACKUP"); |
| | |
| | | } |
| | | return ""; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 迁移旧云端备份列表到新云端 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | private void MoveOldBackupList () |
| | | { |
| | | try { |
| | | GetUserFolderObj requestObj = new GetUserFolderObj () { LevelID = UserConfig.Instance.CurrentRegion.RegionID }; |
| | | 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 ()); |
| | | int index = 1; |
| | | foreach (var folder in responseDataObj) { |
| | | Application.RunOnMainThread (() => { |
| | | try { |
| | | btnTipMsg.Text = $"Migrating server backup {index} / {responseDataObj.Count + 1}."; |
| | | btnTipMsg.TextColor = SkinStyle.Current.TextColor; |
| | | } catch { } |
| | | }); |
| | | try { |
| | | var requestObj2 = new UserBackupListObj () { LevelID = folder.FolderID }; |
| | | var requestJson2 = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj2); |
| | | var revertObj2 = MainPage.RequestHttps ("UserBackupList", requestJson2);//下载旧服务器的备份文件列表 |
| | | if (revertObj2.StateCode == "SUCCESS") { |
| | | var newFolderId = moveFolder2New (newHomeId, folder.FolderName);//在新服务器创建新的备份,获取备份ID |
| | | if (string.IsNullOrEmpty (newFolderId)) {//如果新服务器备份ID为空,可能报错了,新服务器可能已经存在这个备份 |
| | | var backupInfoRes = Newtonsoft.Json.JsonConvert.DeserializeObject<List<BackupInfoRes>> (revertObj2.ResponseData.ToString ()); |
| | | MoveOldBackupFile2New (newFolderId, backupInfoRes); |
| | | } |
| | | } |
| | | } catch { } |
| | | } |
| | | } |
| | | } catch { |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 迁移旧服务器备份文件到新服务器 |
| | | /// </summary> |
| | | /// <param name="backupId"></param> |
| | | /// <returns></returns> |
| | | private string MoveOldBackupFile2New ( string backupId, List<BackupInfoRes> responseDataObj) |
| | | { |
| | | Dictionary<string, object> dic = new Dictionary<string, object> (); |
| | | dic.Add ("backupId", backupId); |
| | | dic.Add ("homeId", newHomeId); |
| | | dic.Add ("userId", newUserId); |
| | | dic.Add ("backupClassify", "USER_DEFINED_BACKUP"); |
| | | dic.Add ("tenantId", "202106"); |
| | | |
| | | List<BackupFileObj> fileObjs = new List<BackupFileObj> (); |
| | | |
| | | int index = 0; |
| | | foreach (var file in responseDataObj) { |
| | | var fileName = file.FileName; |
| | | if (fileName == "null" || "UserConfig" == fileName || fileName == UserInfo.GlobalRegisterFile) { |
| | | continue; |
| | | } |
| | | index++; |
| | | 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); |
| | | BackupFileObj backupFileObj = new BackupFileObj () { fileName = fileName, content = byresss }; |
| | | fileObjs.Add (backupFileObj); |
| | | |
| | | if (fileObjs.Count > 9) { |
| | | if (!dic.ContainsKey ("list")) { |
| | | dic.Add ("list", fileObjs); |
| | | } |
| | | var json = HttpUtil.GetSignRequestJson (dic); |
| | | var revertObj_foreach = MainPage.RequestHttps ("/home-wisdom/data/move/file/save", json, false, false, SeverAddr); |
| | | if (revertObj_foreach != null) { |
| | | if (revertObj_foreach.code == "0") { |
| | | fileObjs.Clear (); |
| | | continue; |
| | | } |
| | | } |
| | | }
|
| | | }
|
| | | } |
| | | if (!dic.ContainsKey ("list")) { |
| | | dic.Add ("list", fileObjs); |
| | | } |
| | | var requestJson = HttpUtil.GetSignRequestJson (dic); |
| | | var revertObj = MainPage.RequestHttps ("/home-wisdom/data/move/file/save", requestJson, false, false, SeverAddr); |
| | | if (revertObj != null) { |
| | | if (revertObj.code == "0") { |
| | | return "true"; |
| | | } |
| | | } |
| | | return ""; |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 获取定时器列表 |
| | | /// </summary> |
| | |
| | | return; |
| | | } |
| | | //迁移住宅,获取新的homeid |
| | | var newHomeId = Home2New (); |
| | | newHomeId = Home2New (); |
| | | if (newHomeId == "") { |
| | | Application.RunOnMainThread (() => { |
| | | btnTipMsg.Text = "Home migration failed. Please try again."; |
| | |
| | | //创建迁移备份文件夹 |
| | | var backId = moveFolder2New (newHomeId); |
| | | //迁移备份文件 |
| | | var moveFileResult = MoveFile2New (newHomeId, backId); |
| | | var moveFileResult = MoveFile2New (backId); |
| | | Application.RunOnMainThread (() => { |
| | | btnTipMsg.Text = "Migrating server backup."; |
| | | btnTipMsg.TextColor = SkinStyle.Current.TextColor; |
| | | }); |
| | | MoveOldBackupList (); |
| | | if (moveFileResult == "true") { |
| | | Application.RunOnMainThread (() => { |
| | | btnTipMsg.Text = "Migration backup succeeded, migrating Schedule data."; |