| | |
| | | |
| | | var btnPoint = new Button () { |
| | | Width = Application.GetRealWidth (10), |
| | | Height = Application.GetRealHeight (10), |
| | | Height = Application.GetRealWidth (10), |
| | | X = Application.GetRealWidth (50), |
| | | Gravity = Gravity.CenterVertical, |
| | | UnSelectedImagePath = "Item/Point.png", |
| | |
| | | //GetUserFolderObj requestObj = new GetUserFolderObj () { LevelID = UserConfig.Instance.CurrentRegion.Id }; |
| | | var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj); |
| | | var revertObj = MainPage.RequestHttps (API.GetHomeDataBackupPagger, requestJson, urlHead); |
| | | if (revertObj.StateCode.ToUpper () == "SUCCESS") { |
| | | if (revertObj.StateCode.ToUpper () == StateCode.SUCCESS) { |
| | | var data = Newtonsoft.Json.JsonConvert.DeserializeObject<GetBackupListResult> (revertObj.ResponseData.ToString ()); |
| | | //var list = new List<BackupListNameInfo> (); |
| | | //foreach (var data2 in data.PageData) { |
| | |
| | | alert.Show (); |
| | | }; |
| | | |
| | | if (MainPage.LoginUser.AccountType != 1) { |
| | | //if (MainPage.LoginUser.AccountType != 1) { |
| | | // rowView.AddRightView (btnDelFile); |
| | | //} |
| | | |
| | | //2020-07-01 当前住宅属于自己的 允许删除备份 |
| | | if (!MainPage.IsAdministrator) { |
| | | rowView.AddRightView (btnDelFile); |
| | | } |
| | | |
| | | var btnPoint = new Button () { |
| | | Width = Application.GetRealWidth (10), |
| | | Height = Application.GetRealHeight (10), |
| | | Height = Application.GetRealWidth (10), |
| | | X = Application.GetRealWidth (25), |
| | | Gravity = Gravity.CenterVertical, |
| | | UnSelectedImagePath = "Item/Point.png", |
| | |
| | | rowView.AddChidren (backupIcon); |
| | | |
| | | var Backup_restores = new Button () { |
| | | Width = Application.GetRealWidth (56), |
| | | Height = Application.GetRealHeight (57), |
| | | Width = Application.GetMinRealAverage (56), |
| | | Height = Application.GetMinRealAverage (57), |
| | | X = backupIcon.Right + Application.GetRealWidth (20), |
| | | UnSelectedImagePath = "Register/Backup_ restores.png", |
| | | SelectedImagePath = "Register/Backup_ restores_on.png", |
| | |
| | | //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") { |
| | | if (revertObj.StateCode.ToUpper () == StateCode.SUCCESS) { |
| | | Application.RunOnMainThread (() => { |
| | | DatabackupShow (); |
| | | }); |
| | |
| | | //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") { |
| | | if (revertObj.StateCode.ToUpper () == StateCode.SUCCESS) { |
| | | //删除成功 |
| | | } else { |
| | | //删除失败 |
| | |
| | | |
| | | //if (string.IsNullOrEmpty (UserConfig.Instance.GatewayMAC)) return; |
| | | //2020-01-11 没绑定MAC不允许上传备份 |
| | | if (!UserConfig.Instance.CheckHomeGateways () || string.IsNullOrEmpty (UserConfig.Instance.CurrentRegion.HomeGateways [0].GatewayUniqueId)) { |
| | | if (!UserConfig.Instance.CheckHomeGatewaysNotEmpty()) { |
| | | MainPage.ShowAlertOnMainThread (ErrorCode.BindGatewayFirst); |
| | | return; |
| | | } |
| | |
| | | //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") { |
| | | if (revertObj.StateCode.ToUpper () == StateCode.SUCCESS) { |
| | | var DATA = Newtonsoft.Json.JsonConvert.DeserializeObject<AddBackupNameResult> (revertObj.ResponseData.ToString ()); |
| | | var addFolderID = DATA.BackupClassId; |
| | | //UpLoadBackupFileToDB (addFolderID); |
| | |
| | | // //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") { |
| | | // if (revertObj2.StateCode.ToUpper () == StateCode.SUCCESS) { |
| | | // //index++; |
| | | // Application.RunOnMainThread (() => { |
| | | // int pro = (int)(index * 1.0 / backuplist.Count * 100); |
| | |
| | | //var requestObj2 = new UserBackupListObj () { LevelID = folderID }; |
| | | var requestJson2 = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj2); |
| | | var revertObj2 = MainPage.RequestHttps (API.GetHomeDataBackupUploadListPagger, requestJson2, urlHead); |
| | | if (revertObj2.StateCode.ToUpper () == "SUCCESS") { |
| | | if (revertObj2.StateCode.ToUpper () == StateCode.SUCCESS) { |
| | | var fileListData = Newtonsoft.Json.JsonConvert.DeserializeObject<LoadBackInfoResult> (revertObj2.ResponseData.ToString ()); |
| | | var responseDataObj = fileListData.PageData; |
| | | ////获取文件名字 |
| | |
| | | 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); |
| | | var revertObj3 = MainPage.RequestHttpsReturnByteNew (API.DownloadSomeDataBackup, requestJson3, mUrlHead); |
| | | if (revertObj3 != null) { |
| | | |
| | | IO.FileUtils.WriteFileByBytes (file.BackupFileName, revertObj3); |
| | |
| | | |
| | | } |
| | | |
| | | private readonly object SendLocker = new object (); |
| | | private readonly object DownloadLocker = new object (); |
| | | |
| | | /// <summary> |
| | | /// 多线程下载 |
| | | /// </summary> |
| | |
| | | int index = 0; |
| | | int indexCount = 0; |
| | | |
| | | var mFileList = dataList.FindAll ((obj) => obj.BackupFileName != "null" && obj.BackupFileName != UserConfig.configFile && obj.BackupFileName != UserInfo.GlobalRegisterFile && obj.BackupFileName != "AccountListDB"); |
| | | var mFileList = dataList.FindAll ((obj) => obj.BackupFileName != "null" && obj.BackupFileName != UserConfig.configFile && obj.BackupFileName != UserInfo.GlobalRegisterFile && obj.BackupFileName != "AccountListDB" && obj.BackupFileName != CommonConfig.ConfigFile); |
| | | if (maxThreads > mFileList.Count) { |
| | | maxThreads = mFileList.Count; |
| | | } |
| | |
| | | new System.Threading.Thread (() => { |
| | | |
| | | for (var j = startIndex1; j <= endIndex1; j++) { |
| | | var result = DownloadSomeDataBackup (mDownLoad, mUrlHead, mFileList [j]); |
| | | if (result) { |
| | | index++; |
| | | Application.RunOnMainThread (() => { |
| | | int pro = (int)(index * 1.0 / mFileList.Count * 100); |
| | | MainPage.Loading.Text = pro.ToString () + "%"; |
| | | }); |
| | | |
| | | try { |
| | | //如果失败重新下载,重复3次 |
| | | int errorCount = 0; |
| | | while (errorCount < 3) { |
| | | var result = DownloadSomeDataBackup (mDownLoad, mUrlHead, mFileList [j]); |
| | | if (result) { |
| | | lock (DownloadLocker) { |
| | | index++; |
| | | } |
| | | Application.RunOnMainThread (() => { |
| | | int pro = (int)(index * 1.0 / mFileList.Count * 100); |
| | | MainPage.Loading.Text = pro.ToString () + "%"; |
| | | }); |
| | | errorCount = 3; |
| | | } else { |
| | | errorCount++; |
| | | Utlis.WriteLine ($"下载失败: {mFileList [j].BackupFileName} 次数:{errorCount}"); |
| | | } |
| | | } |
| | | } catch { } finally { |
| | | lock (SendLocker) { |
| | | indexCount++; |
| | | } |
| | | } |
| | | indexCount++; |
| | | |
| | | //var t1 = DateTime.Now.Second; |
| | | //var result = DownloadSomeDataBackup (mDownLoad, mUrlHead, mFileList [j]); |
| | | //if (result) { |
| | | // index++; |
| | | // Application.RunOnMainThread (() => { |
| | | // int pro = (int)(index * 1.0 / mFileList.Count * 100); |
| | | // MainPage.Loading.Text = pro.ToString () + "%"; |
| | | // }); |
| | | |
| | | //} else { |
| | | // Utlis.WriteLine ($"下载失败: {mFileList [j].BackupFileName} 时间:{DateTime.Now.Second - t1}S"); |
| | | //} |
| | | //indexCount++; |
| | | //Utlis.WriteLine ($"下载线程:{id} 完成index:{j} indexCount: {indexCount}"); |
| | | } |
| | | |
| | |
| | | |
| | | var requestJson2 = Newtonsoft.Json.JsonConvert.SerializeObject (mUpData); |
| | | var revertObj2 = MainPage.RequestHttps (API.UploadHomeAppGatewaySubFiles, requestJson2, mUrlHead); |
| | | if (revertObj2.StateCode.ToUpper () == "SUCCESS") { |
| | | if (revertObj2.StateCode.ToUpper () == StateCode.SUCCESS) { |
| | | return true; |
| | | } else { |
| | | //提示错误 |
| | |
| | | void UpLoadBackupFileToDBNew (string mBackupClassId, int maxThreads = 20) |
| | | { |
| | | var backuplist = IO.FileUtils.ReadFiles (); |
| | | var mFileList = backuplist.FindAll ((obj) => obj != "null" && obj != UserConfig.configFile && obj != UserInfo.GlobalRegisterFile && obj != "AccountListDB"); |
| | | var mFileList = backuplist.FindAll ((obj) => obj != "null" && obj != UserConfig.configFile && obj != UserInfo.GlobalRegisterFile && obj != "AccountListDB" && obj != CommonConfig.ConfigFile); |
| | | if (mFileList.Count <= 0) return; |
| | | |
| | | if (maxThreads > mFileList.Count) { |
| | |
| | | UploadHomeAppGatewaySubFilesObj mUpData = upData; |
| | | mUpData.UploadSubFileLists = list; |
| | | |
| | | var requestJson2 = Newtonsoft.Json.JsonConvert.SerializeObject (mUpData); |
| | | var revertObj2 = MainPage.RequestHttps (API.UploadHomeAppGatewaySubFiles, requestJson2, mUrlHead); |
| | | if (revertObj2.StateCode.ToUpper () == "SUCCESS") { |
| | | return true; |
| | | } else { |
| | | //提示错误 |
| | | return false; |
| | | //var requestJson2 = Newtonsoft.Json.JsonConvert.SerializeObject (mUpData); |
| | | //var revertObj2 = MainPage.RequestHttps (API.UploadHomeAppGatewaySubFiles, requestJson2, mUrlHead); |
| | | //if (revertObj2.StateCode.ToUpper () == StateCode.SUCCESS) { |
| | | // return true; |
| | | //} else { |
| | | // //提示错误 |
| | | // return false; |
| | | //} |
| | | |
| | | //2020-11-16 如果失败重新上传,重复3次 |
| | | int errorCount = 0; |
| | | var result = false; |
| | | while (errorCount < 3) { |
| | | var requestJson2 = Newtonsoft.Json.JsonConvert.SerializeObject (mUpData); |
| | | var revertObj2 = MainPage.RequestHttps (API.UploadHomeAppGatewaySubFiles, requestJson2, mUrlHead, MainPage.TIME_OUT_20); |
| | | if (revertObj2.StateCode.ToUpper () == StateCode.SUCCESS) { |
| | | result = true; |
| | | errorCount = 3; |
| | | } else { |
| | | errorCount++; |
| | | //Utlis.WriteLine ($"上传失败({startIndex1}-{endIndex1}),次数:{errorCount}"); |
| | | } |
| | | } |
| | | return result; |
| | | } catch { |
| | | return false; |
| | | } |