From c7df85937f73fb347ee0b19e9c052d2d00a6df6c Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期五, 18 九月 2020 13:58:19 +0800
Subject: [PATCH] 新版本

---
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlBackupLogic.cs |  420 +++++++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 317 insertions(+), 103 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlBackupLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlBackupLogic.cs
index cb7d026..04a86a6 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlBackupLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlBackupLogic.cs
@@ -5,7 +5,6 @@
 using System.IO;
 using System.Net;
 using System.Text;
-using System.Threading.Tasks;
 
 namespace Shared.Phone.UserCenter
 {
@@ -35,11 +34,6 @@
             }
         }
 
-        /// <summary>
-        /// Log澶囦唤鐨勫悕瀛�
-        /// </summary>
-        private string LogBackupName = "##Log##";
-
         #endregion
 
         #region 鈻� 鑾峰彇澶囦唤鍚嶅瓧鍒楄〃___________________
@@ -49,9 +43,9 @@
         /// </summary>
         /// <param name="ZigbeeBackupType">0:App鎵嬪姩澶囦唤 1: App 鑷姩澶囦唤 2锛氱綉鍏虫墜鍔ㄥ浠� 3:缃戝叧鑷姩澶囦唤</param>
         /// <param name="ZigbeeUniqueId">缃戝叧鐨勫敮涓�Id,鑾峰彇缃戝叧澶囦唤闇�瑕�</param>
-        /// <param name="getLogBackup">鏄惁鑾峰彇Log澶囦唤</param>
+        /// <param name="getOptionBackup">鏄惁鑾峰彇鍔熻兘澶囦唤</param>
         /// <returns></returns>
-        public async Task<List<BackupListNameInfo>> GetBackupListNameFromDB(int ZigbeeBackupType = 0, string ZigbeeUniqueId = null, bool getLogBackup = false)
+        public List<BackupListNameInfo> GetBackupListNameFromDB(int ZigbeeBackupType = 0, string ZigbeeUniqueId = null, bool getOptionBackup = false)
         {
             //澶囦唤鍚嶅瓧寰堝皯鐨勫唴瀛橈紝鍙互鐩存帴涓�娆℃�у叏閮ㄥ彇瀹�
             var pra = new GetBackupListPra();
@@ -63,8 +57,7 @@
             pra.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
 
             //璁块棶鎺ュ彛
-            var listNotShow = new List<string>() { "NotSetAgain" };
-            string result = await UserCenterLogic.GetResponseDataByRequestHttps("App/GetHomeDataBackupPagger", true, pra, listNotShow);
+            string result = UserCenterLogic.GetResponseDataByRequestHttps("App/GetHomeDataBackupPagger", true, pra);
             if (string.IsNullOrEmpty(result) == true)
             {
                 return null;
@@ -78,9 +71,9 @@
                 {
                     continue;
                 }
-                if (getLogBackup == false && data2.BackupName == LogBackupName)
+                if (getOptionBackup == false && data2.BackupName == DirNameResourse.OptionBackupName)
                 {
-                    //涓嶈幏鍙朙og澶囦唤
+                    //涓嶈幏鍙栧姛鑳藉浠�
                     continue;
                 }
                 list.Add(data2);
@@ -96,25 +89,25 @@
         /// <param name="IsGatewayAutoBackup">褰撳墠鑾峰彇鏄惁涓虹綉鍏宠嚜鍔ㄥ浠�</param>
         /// <param name="ZigbeeUniqueId">ZigbeeUniqueId 缃戝叧鐨勫敮涓�Id(褰揑sGatewayBackup=true鏃讹紝姝ゅ弬鏁板繀椤绘彁渚�</param>
         /// <returns></returns>
-        public async Task<string> GetBackFileFromDBAndSetToLocation(string BackupClassId, bool IsGatewayAutoBackup = false, string ZigbeeUniqueId = null)
+        public string GetBackFileFromDBAndSetToLocation(string BackupClassId, bool IsGatewayAutoBackup = false, string ZigbeeUniqueId = null)
         {
             //涓嶅厑璁告寜绯荤粺鐨勮繑鍥為敭
             Shared.Common.CommonPage.BackKeyCanClick = false;
-            UserCenterResourse.Option.AppCanSignout = false;
+            UserCenterResourse.AccountOption.AppCanSignout = false;
 
             //棣栧厛鍏堝垱寤轰竴涓复鏃舵枃浠跺す,瀛樺湪鏂囦欢鍒欐竻绌�
-            string newDir = System.IO.Path.Combine(DirNameResourse.LocalMemoryDirectory, DirNameResourse.DownLoadBackupTempDirectory);
-            Global.CreateEmptyDirectory(newDir, true);
+            string newDir = DirNameResourse.DownLoadBackupTempDirectory;
+            HdlFileLogic.Current.CreateDirectory(newDir, true);
 
             //鑾峰彇杩欎釜澶囦唤涓嬮潰鏈夊灏戜釜鏂囦欢
-            List<string> listFile = await GetBackFileIDFromDB(BackupClassId, IsGatewayAutoBackup, ZigbeeUniqueId);
+            List<string> listFile = GetBackFileIDFromDB(BackupClassId, IsGatewayAutoBackup, ZigbeeUniqueId);
             if (listFile == null)
             {
                 //鍏抽棴杩涘害鏉�
                 ProgressFormBar.Current.Close();
                 //鍏佽鎸夌郴缁熺殑杩斿洖閿�
                 Shared.Common.CommonPage.BackKeyCanClick = true;
-                UserCenterResourse.Option.AppCanSignout = true;
+                UserCenterResourse.AccountOption.AppCanSignout = true;
                 return null;
             }
 
@@ -137,32 +130,31 @@
                     ProgressFormBar.Current.Close();
                     //鍏佽鎸夌郴缁熺殑杩斿洖閿�
                     Shared.Common.CommonPage.BackKeyCanClick = true;
-                    UserCenterResourse.Option.AppCanSignout = true;
+                    UserCenterResourse.AccountOption.AppCanSignout = true;
                     return null;
                 }
 
                 //鈽呰缃渶瑕佽幏鍙栫殑鏂囦欢鍚嶅瓧鈽�
                 pra.BackupFileName = fileName;
-                var result = await UserCenterLogic.GetByteResponseDataByRequestHttps("App/DownloadSomeDataBackup", true, pra);
+                var result = UserCenterLogic.GetByteResponseDataByRequestHttps("App/DownloadSomeDataBackup", true, pra, null, true);
                 if (result == null)
                 {
                     //鍏抽棴杩涘害鏉�
                     ProgressFormBar.Current.Close();
                     //鍏佽鎸夌郴缁熺殑杩斿洖閿�
                     Shared.Common.CommonPage.BackKeyCanClick = true;
-                    UserCenterResourse.Option.AppCanSignout = true;
+                    UserCenterResourse.AccountOption.AppCanSignout = true;
                     return null;
                 }
                 //灏嗚緭鍏ュ啓鍏ユ湰鍦扮殑涓存椂鏂囦欢澶�
-                Global.WriteFileToDirectoryByBytes(newDir, fileName, result);
+                HdlFileLogic.Current.SaveByteToFile(System.IO.Path.Combine(newDir, fileName), result);
                 //璁剧疆杩涘害鍊�
                 ProgressFormBar.Current.SetValue(i + 1, listFileCount);
             }
-            //鍏抽棴杩涘害鏉�
-            ProgressFormBar.Current.Close();
+
             //鍏佽鎸夌郴缁熺殑杩斿洖閿�
             Shared.Common.CommonPage.BackKeyCanClick = true;
-            UserCenterResourse.Option.AppCanSignout = true;
+            UserCenterResourse.AccountOption.AppCanSignout = true;
 
             return newDir;
         }
@@ -174,7 +166,7 @@
         /// <param name="IsGatewayAutoBackup">褰撳墠鑾峰彇鏄惁涓虹綉鍏宠嚜鍔ㄥ浠�</param>
         /// <param name="ZigbeeUniqueId">ZigbeeUniqueId 缃戝叧鐨勫敮涓�Id(褰揑sGatewayBackup=true鏃讹紝姝ゅ弬鏁板繀椤绘彁渚�</param>
         /// <returns></returns>
-        private async Task<List<string>> GetBackFileIDFromDB(string BackupClassId, bool IsGatewayAutoBackup, string ZigbeeUniqueId)
+        private List<string> GetBackFileIDFromDB(string BackupClassId, bool IsGatewayAutoBackup, string ZigbeeUniqueId)
         {
             var pra = new LoadBackInfoPra();
             pra.BackupClassId = BackupClassId;
@@ -186,8 +178,8 @@
             pra.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
 
             //棣栧厛鍏堣幏鍙栦簯绔湁浠�涔堟枃浠�
-            string result = await UserCenterLogic.GetResponseDataByRequestHttps("App/GetHomeDataBackupUploadListPagger", true, pra);
-            if (result == null)
+            string result = UserCenterLogic.GetResponseDataByRequestHttps("App/GetHomeDataBackupUploadListPagger", true, pra);
+            if (string.IsNullOrEmpty(result) == true)
             {
                 return null;
             }
@@ -213,7 +205,7 @@
         /// <param name="ManualBackupType">鎵嬪姩澶囦唤绫诲瀷(0:App鎵嬪姩澶囦唤,2锛氱綉鍏虫墜鍔ㄥ浠�)</param>
         /// <param name="ZigbeeUniqueId">缃戝叧鐨勫敮涓�Id,褰揗anualBackupType=2鏃�,姝ゅ�间笉鑳戒负绌�!</param>
         /// <returns></returns>
-        public async Task<string> CreatNewBackupNameToDB(string backupName, int ManualBackupType = 0, string ZigbeeUniqueId = null)
+        public string CreatNewBackupNameToDB(string backupName, int ManualBackupType = 0, string ZigbeeUniqueId = null)
         {
             var pra = new AddBackUpNamePra();
             pra.BackupName = backupName;
@@ -222,8 +214,8 @@
             //鑾峰彇鎺у埗涓讳汉璐﹀彿鐨凾oken
             pra.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
 
-            var result = await UserCenterLogic.GetResponseDataByRequestHttps("App/AddHomeAppGatewayName", true, pra);
-            if (result == null)
+            var result = UserCenterLogic.GetResponseDataByRequestHttps("App/AddHomeAppGatewayName", true, pra);
+            if (string.IsNullOrEmpty(result) == true)
             {
                 return null;
             }
@@ -244,20 +236,30 @@
         /// <param name="upPath">鎸囧畾涓婁紶鐨勬槸鍝釜鏂囦欢澶圭殑鏂囦欢(鍏ㄨ矾寰�),涓嶆寚瀹氭椂锛屼笂浼犵殑鏄湰鍦拌矾寰勪笅鐨勬枃浠�</param>
         /// <param name="showBar">鏄惁璁剧疆鏄剧ず杩涘害鏉�</param>
         /// <returns></returns>
-        public async Task<bool> UpLoadBackupFileToDB(string BackupClassId, int ManualBackupType = 0, string upPath = "", bool showBar = true)
+        public bool UpLoadBackupFileToDB(string BackupClassId, int ManualBackupType = 0, string upPath = "", bool showBar = true)
         {
             List<string> listAllFile = null;
             //鏂囦欢澶圭殑鍏ㄨ矾寰�
             string fullDir = string.Empty;
+            string localTemplateName = string.Empty;
             if (upPath == string.Empty)
             {
+                //灏嗘ā鏉挎暟鎹繚瀛樺埌鍒版寚瀹氱殑鏂囦欢澶逛腑
+                var templateName = TemplateData.TemplateCommonLogic.Current.GetNewTemplateFileName();
+                var templateFile = TemplateData.TemplateCommonLogic.Current.SaveTemplateDataToFile(templateName, "HomeTemplate");
+
+                //灏嗘ā鏉縝in鏂囦欢绉诲姩鍒板浠芥枃浠跺す涓�
+                localTemplateName = System.IO.Path.Combine(Config.Instance.FullPath, templateName);
+                try { System.IO.File.Move(templateFile, localTemplateName); }
+                catch (Exception ex) { HdlLogLogic.Current.WriteLog(ex, "绉诲姩妯℃澘澶辫触"); }
+
                 //鑾峰彇鏈湴鏂囦欢
-                listAllFile = Global.FileListByHomeId();
-                fullDir = UserCenterLogic.CombinePath();
+                listAllFile = HdlFileLogic.Current.GetRootPathListFile();
+                fullDir = Common.Config.Instance.FullPath;
             }
             else
             {
-                listAllFile = HdlAutoBackupLogic.GetFileFromDirectory(upPath);
+                listAllFile = HdlFileLogic.Current.GetFileFromDirectory(upPath);
                 fullDir = upPath;
             }
             if (listAllFile.Count == 0)
@@ -272,7 +274,13 @@
 
             foreach (string fileName in listAllFile)
             {
-                if (fileName.EndsWith(".png") == true)
+                //鍒ゆ柇鎸囧畾鏂囦欢鏄惁闇�瑕佷笂浼�(鏍圭洰褰曠殑鎵嶅垽鏂�)
+                if (upPath == string.Empty && this.IsNotUpLoadFile(fileName) == true)
+                {
+                    continue;
+                }
+                if (fileName.EndsWith(".png") == true
+                    || fileName.EndsWith(".bin") == true)
                 {
                     //鍥剧墖鏂囦欢
                     listPicFile.Add(fileName);
@@ -282,7 +290,7 @@
             }
 
             //寮�鍚繘搴︽潯
-            int listFileCount = listAllFile.Count;
+            int listFileCount = listPicFile.Count + listNormalFile.Count;
             if (showBar == true)
             {
                 //寮�鍚繘搴︽潯 姝e湪涓婁紶澶囦唤鏂囦欢
@@ -292,7 +300,7 @@
 
             //涓嶅厑璁告寜绯荤粺鐨勮繑鍥為敭
             Shared.Common.CommonPage.BackKeyCanClick = false;
-            UserCenterResourse.Option.AppCanSignout = false;
+            UserCenterResourse.AccountOption.AppCanSignout = false;
 
             //浣犺涓轰粈涔堣繖閲屼笉鍒嗕竴涓嚱鏁板嚭鏉ワ紙鐞嗚涓婃槸鍒嗗嚱鏁板嚭鏉ョ殑锛�
             //鏄洜涓哄鏋滃垎鍑芥暟鐨勮瘽锛屼細鍑虹幇鍙岄噸寮傛锛屽鑷翠富绾跨▼鐨勮繘搴︽潯鐨勭櫨鍒嗘瘮姘歌繙瀹氭0%
@@ -306,32 +314,37 @@
                     ProgressFormBar.Current.Close();
                     //鍏佽鎸夌郴缁熺殑杩斿洖閿�
                     Shared.Common.CommonPage.BackKeyCanClick = true;
-                    UserCenterResourse.Option.AppCanSignout = true;
+                    UserCenterResourse.AccountOption.AppCanSignout = true;
+                    if (localTemplateName != string.Empty)
+                    {
+                        //鍒犻櫎鎺夎繖涓ā鏉挎枃浠�
+                        HdlFileLogic.Current.DeleteFile(localTemplateName);
+                    }
                     return false;
-                }
-                //鍒ゆ柇鏄惁鏄簲璇ヤ笂浼犵殑鏂囦欢
-                if (IsNotUpLoadFile(file) == true && upPath == string.Empty)
-                {
-                    continue;
                 }
                 //鏁寸悊鏁版嵁
                 var datainfo = new FileInfoData();
                 datainfo.BackupFileName = file;
                 string fullFileName = System.IO.Path.Combine(fullDir, file);
-                datainfo.BackupFileContent = Shared.IO.FileUtils.ReadFile(fullFileName);
+                datainfo.BackupFileContent = HdlFileLogic.Current.ReadFileByteContent(fullFileName);
 
                 var list = new List<FileInfoData>();
                 list.Add(datainfo);
 
                 //鎵ц涓婁紶
-                bool falge = await DoUpLoadInfoToDB(BackupClassId, list, ManualBackupType);
+                bool falge = DoUpLoadInfoToDB(BackupClassId, list, ManualBackupType);
                 if (falge == false)
                 {
                     //鍏抽棴杩涘害鏉�
                     ProgressFormBar.Current.Close();
                     //鍏佽鎸夌郴缁熺殑杩斿洖閿�
                     Shared.Common.CommonPage.BackKeyCanClick = true;
-                    UserCenterResourse.Option.AppCanSignout = true;
+                    UserCenterResourse.AccountOption.AppCanSignout = true;
+                    if (localTemplateName != string.Empty)
+                    {
+                        //鍒犻櫎鎺夎繖涓ā鏉挎枃浠�
+                        HdlFileLogic.Current.DeleteFile(localTemplateName);
+                    }
                     return false;
                 }
                 //璁剧疆杩涘害鍊�
@@ -348,7 +361,12 @@
                     ProgressFormBar.Current.Close();
                     //鍏佽鎸夌郴缁熺殑杩斿洖閿�
                     Shared.Common.CommonPage.BackKeyCanClick = true;
-                    UserCenterResourse.Option.AppCanSignout = true;
+                    UserCenterResourse.AccountOption.AppCanSignout = true;
+                    if (localTemplateName != string.Empty)
+                    {
+                        //鍒犻櫎鎺夎繖涓ā鏉挎枃浠�
+                        HdlFileLogic.Current.DeleteFile(localTemplateName);
+                    }
                     return false;
                 }
 
@@ -363,25 +381,29 @@
                     ProgressFormBar.Current.Close();
                     //鍏佽鎸夌郴缁熺殑杩斿洖閿�
                     Shared.Common.CommonPage.BackKeyCanClick = true;
-                    UserCenterResourse.Option.AppCanSignout = true;
+                    UserCenterResourse.AccountOption.AppCanSignout = true;
+                    if (localTemplateName != string.Empty)
+                    {
+                        //鍒犻櫎鎺夎繖涓ā鏉挎枃浠�
+                        HdlFileLogic.Current.DeleteFile(localTemplateName);
+                    }
                     return false;
                 }
                 //璁剧疆杩涘害鍊�
                 ProgressFormBar.Current.SetValue(i + 1 + listNormalFile.Count, listFileCount);
             }
 
-            //涓婁紶Log澶囦唤
-            if (upPath != UserCenterLogic.CombinePath(DirNameResourse.LocalMemoryDirectory, DirNameResourse.LogDirectory))
+            if (localTemplateName != string.Empty)
             {
-                //閲岄潰鏈変釜鍥炶皟鑷韩鐨勬柟娉�,鎵�浠ヨ繖閲屽姞涓垽鏂�,涓嶇劧浼氭寰幆
-                await this.UpLoadLogBackup();
+                //鍒犻櫎鎺夎繖涓ā鏉挎枃浠�
+                HdlFileLogic.Current.DeleteFile(localTemplateName);
             }
 
             //杩涘害鏉″叧闂�
             ProgressFormBar.Current.Close();
             //鍏佽鎸夌郴缁熺殑杩斿洖閿�
             Shared.Common.CommonPage.BackKeyCanClick = true;
-            UserCenterResourse.Option.AppCanSignout = true;
+            UserCenterResourse.AccountOption.AppCanSignout = true;
 
             return true;
         }
@@ -393,7 +415,7 @@
         /// <param name="listData">涓婁紶鐨勬暟鎹�</param>
         /// <param name="ManualBackupType">鎵嬪姩澶囦唤绫诲瀷(0:App鎵嬪姩澶囦唤,2锛氱綉鍏虫墜鍔ㄥ浠�)</param>
         /// <returns></returns>
-        private async Task<bool> DoUpLoadInfoToDB(string BackupClassId, List<FileInfoData> listData, int ManualBackupType = 0)
+        private bool DoUpLoadInfoToDB(string BackupClassId, List<FileInfoData> listData, int ManualBackupType = 0)
         {
             var upData = new UpLoadDataPra();
             upData.ManualBackupType = ManualBackupType;
@@ -402,7 +424,7 @@
             //鑾峰彇鎺у埗涓讳汉璐﹀彿鐨凾oken
             upData.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
 
-            bool falge = await UserCenterLogic.GetResultStatuByRequestHttps("App/UploadHomeAppGatewaySubFiles", true, upData);
+            bool falge = UserCenterLogic.GetResultStatuByRequestHttps("App/UploadHomeAppGatewaySubFiles", true, upData, null, true);
             if (falge == false)
             {
                 return false;
@@ -430,14 +452,11 @@
                 nvc.Add("HomeId", Shared.Common.Config.Instance.Home.Id);
                 nvc.Add("BackupClassId", BackupClassId);
                 nvc.Add("ManualBackupType", ManualBackupType.ToString());
-                nvc.Add("IsOtherAccountCtrl", Common.Config.Instance.isAdministrator.ToString());
+                nvc.Add("IsOtherAccountCtrl", Common.Config.Instance.Home.IsOthreShare.ToString());
 
-                for (int i = 0; i < listPicFile.Count; i++)
-                {
-                    string base64 = GetBase64Text(fullName);
-                    nvc.Add("UploadSubFileLists[" + i + "].BackupFileName", fileName);
-                    nvc.Add("UploadSubFileLists[" + i + "].BackupFileContent", base64);
-                }
+                string base64 = GetBase64Text(fullName);
+                nvc.Add("UploadSubFileLists[0].BackupFileName", fileName);
+                nvc.Add("UploadSubFileLists[0].BackupFileContent", base64);
 
                 bool result = UpLoadBigBackupFileToDB("App/UploadHomeAppGatewaySubFiles", fullName, nvc);
                 if (result == false)
@@ -461,7 +480,7 @@
             string contentType = "application/octet-stream";
             string requestUrl = string.Empty;
             //鍚敤绠$悊鍛樻潈闄�
-            if (Config.Instance.isAdministrator == true)
+            if (Config.Instance.Home.IsOthreShare == true)
             {
                 requestUrl = $"{Config.Instance.AdminRequestBaseUrl}/{RequestName}";
             }
@@ -541,66 +560,250 @@
         #region 鈻� 涓婁紶Log澶囦唤________________________
 
         /// <summary>
-        /// 涓婁紶Log澶囦唤
+        /// 涓婁紶Log澶囦唤(闅愬尶鍔熻兘)
         /// </summary>
         /// <returns></returns>
-        private async Task<bool> UpLoadLogBackup()
+        public bool UpLoadLogBackup()
         {
-            string upPath = UserCenterLogic.CombinePath(DirNameResourse.LocalMemoryDirectory, DirNameResourse.LogDirectory);
-            if (HdlAutoBackupLogic.GetFileFromDirectory(upPath).Count == 0)
+            string upPath = DirNameResourse.LogDirectory;
+            if (HdlFileLogic.Current.GetFileFromDirectory(upPath).Count == 0)
             {
                 //娌℃湁Log鏂囦欢
+                return true;
+            }
+
+            ProgressFormBar.Current.Start();
+            ProgressFormBar.Current.SetMsg("姝e湪涓婁紶Log鏂囦欢");
+
+            //浠庝簯绔幏鍙栨暟鎹�
+            var pageData = HdlBackupLogic.Current.GetBackupListNameFromDB(0, null, true);
+            if (pageData == null)
+            {
+                ProgressFormBar.Current.Close();
+                return false;
+            }
+            string backId = string.Empty;
+            for (int i = 0; i < pageData.Count; i++)
+            {
+                if (pageData[i].BackupName == DirNameResourse.OptionBackupName)
+                {
+                    //鑾峰彇鍔熻兘澶囦唤鐨処D
+                    backId = pageData[i].Id;
+                    break;
+                }
+            }
+            if (backId == string.Empty)
+            {
+                //鍒涘缓鏂扮殑澶囦唤
+                backId = HdlBackupLogic.Current.CreatNewBackupNameToDB(DirNameResourse.OptionBackupName);
+                if (backId == null)
+                {
+                    ProgressFormBar.Current.Close();
+                    return false;
+                }
+            }
+            //涓婁紶Log鏂囦欢
+            bool result = this.UpLoadBackupFileToDB(backId, 0, upPath, false);
+            if (result == true)
+            {
+                try
+                {
+                    var listAllFile = HdlFileLogic.Current.GetFileFromDirectory(upPath);
+                    if (listAllFile.Count > 10)
+                    {
+                        listAllFile.Sort();
+                        while (listAllFile.Count >= 10)
+                        {
+                            System.IO.File.Delete(listAllFile[0]);
+                            listAllFile.RemoveAt(0);
+                        }
+                    }
+                }
+                catch { }
+            }
+            ProgressFormBar.Current.Close();
+
+            HdlThreadLogic.Current.RunMain(() =>
+            {
+                var contr = new ShowMsgControl(ShowMsgType.Tip, "Log涓婁紶鎴愬姛");
+                contr.Show();
+            });
+
+            return result;
+        }
+
+        /// <summary>
+        /// 涓婁紶涓滆タ鍒伴殣鍖垮姛鑳藉浠�
+        /// </summary>
+        /// <param name="fileName"></param>
+        /// <param name="byteData"></param>
+        /// <returns></returns>
+        public bool UpLoadByteDataToOptionBackup(string fileName, byte[] byteData)
+        {
+            ProgressFormBar.Current.Start();
+            ProgressFormBar.Current.SetMsg("姝e湪涓婁紶鏂囦欢");
+
+            //浠庝簯绔幏鍙栨暟鎹�
+            var pageData = HdlBackupLogic.Current.GetBackupListNameFromDB(0, null, true);
+            if (pageData == null)
+            {
+                ProgressFormBar.Current.Close();
+                HdlThreadLogic.Current.RunMain(() =>
+                {
+                    var contr = new ShowMsgControl(ShowMsgType.Tip, "鑾峰彇鍔熻兘澶囦唤澶辫触");
+                    contr.Show();
+                });
+                return false;
+            }
+            string backId = string.Empty;
+            for (int i = 0; i < pageData.Count; i++)
+            {
+                if (pageData[i].BackupName == DirNameResourse.OptionBackupName)
+                {
+                    //鑾峰彇鍔熻兘澶囦唤鐨処D
+                    backId = pageData[i].Id;
+                    break;
+                }
+            }
+            if (backId == string.Empty)
+            {
+                //鍒涘缓鏂扮殑澶囦唤
+                backId = this.CreatNewBackupNameToDB(DirNameResourse.OptionBackupName);
+                if (backId == null)
+                {
+                    ProgressFormBar.Current.Close();
+                    HdlThreadLogic.Current.RunMain(() =>
+                    {
+                        var contr = new ShowMsgControl(ShowMsgType.Tip, "鍒涘缓鍔熻兘澶囦唤澶辫触");
+                        contr.Show();
+                    });
+                    return false;
+                }
+            }
+            //涓婁紶Log鏂囦欢
+            var datainfo = new FileInfoData();
+            datainfo.BackupFileName = fileName;
+            datainfo.BackupFileContent = byteData;
+
+            var list = new List<FileInfoData>();
+            list.Add(datainfo);
+
+            //鎵ц涓婁紶
+            bool falge = DoUpLoadInfoToDB(backId, list, 0);
+            //鍏抽棴杩涘害鏉�
+            ProgressFormBar.Current.Close();
+
+            if (falge == false)
+            {
+                HdlThreadLogic.Current.RunMain(() =>
+                {
+                    var contr = new ShowMsgControl(ShowMsgType.Tip, "鏂囦欢涓婁紶鎴愬姛");
+                    contr.Show();
+                });
+                return false;
+            }
+            HdlThreadLogic.Current.RunMain(() =>
+            {
+                var contr = new ShowMsgControl(ShowMsgType.Tip, "鏂囦欢涓婁紶鎴愬姛");
+                contr.Show();
+            });
+
+            return true;
+        }
+
+        #endregion
+
+        #region 鈻� 璇诲彇闅愬尶鍔熻兘閰嶇疆___________________
+
+        /// <summary>
+        /// 璇诲彇闅愬尶鍔熻兘閰嶇疆(涓嶈鍦ㄦ剰杩斿洖鍊�)
+        /// </summary>
+        /// <returns></returns>
+        public bool LoadHideOption()
+        {
+            //鍏堝垵濮嬪寲
+            UserCenterResourse.HideOption = new HideOptionInfo();
+            if (UserCenterResourse.UserInfo.AuthorityNo != 1 && UserCenterResourse.UserInfo.AuthorityNo != 2)
+            {
                 return true;
             }
 
             //鏃犺閿欒
             IMessageCommon.Current.IgnoreError = true;
             //浠庝簯绔幏鍙栨暟鎹�
-            var pageData = await HdlBackupLogic.Current.GetBackupListNameFromDB(0, null, true);
+            var pageData = this.GetBackupListNameFromDB(0, null, true);
             if (pageData == null)
             {
                 //鎭㈠
                 IMessageCommon.Current.IgnoreError = false;
                 return false;
             }
+            string backId = string.Empty;
             for (int i = 0; i < pageData.Count; i++)
             {
-                if (pageData[i].BackupName == LogBackupName)
+                if (pageData[i].BackupName == DirNameResourse.OptionBackupName)
                 {
-                    //鍒犻櫎鎺夎繖涓浠�
-                    bool flage = await this.DeleteDbBackupData(pageData[i].Id);
-                    if (flage == false)
-                    {
-                        //鎭㈠
-                        IMessageCommon.Current.IgnoreError = false;
-                        return false;
-                    }
+                    //鑾峰彇鍔熻兘澶囦唤鐨処D
+                    backId = pageData[i].Id;
                     break;
                 }
             }
-            //鍒涘缓鏂扮殑澶囦唤
-            string backupClassId = await HdlBackupLogic.Current.CreatNewBackupNameToDB(LogBackupName);
-            if (backupClassId == null)
+            if (backId == string.Empty)
+            {
+                //娌℃湁鍔熻兘閰嶇疆
+                IMessageCommon.Current.IgnoreError = false;
+                return true;
+            }
+            //鑾峰彇杩欎釜澶囦唤涓嬮潰鏈夊灏戜釜鏂囦欢
+            List<string> listFile = GetBackFileIDFromDB(backId, false, null);
+            if (listFile == null)
             {
                 //鎭㈠
                 IMessageCommon.Current.IgnoreError = false;
                 return false;
             }
-            //涓婁紶Log鏂囦欢
-            bool result = await this.UpLoadBackupFileToDB(backupClassId, 0, upPath, false);
-            if (result == true)
+            if (listFile.Count == 0)
             {
-                try
-                {
-                    //鍒犻櫎鏈湴鍏ㄩ儴Log
-                    Global.CreateEmptyDirectory(Path.Combine(DirNameResourse.LocalMemoryDirectory, DirNameResourse.LogDirectory), true);
-                }
-                catch { }
+                //鎭㈠
+                IMessageCommon.Current.IgnoreError = false;
+                return true;
             }
+
+            //妫�娴�
+            string checkKeys = UserCenterLogic.EncryptPassword(UserCenterResourse.FileEncryptKey, DirNameResourse.ShowOptionMenuFile + UserCenterResourse.UserInfo.Account);
+            if (listFile.Contains(checkKeys) == true)
+            {
+                //鏄剧ず涓婚〉闅愯棌鑿滃崟(Debug鐢�)
+                UserCenterResourse.HideOption.CenterHideMenu = 1;
+            }
+            checkKeys = UserCenterLogic.EncryptPassword(UserCenterResourse.FileEncryptKey, DirNameResourse.DetailedLogFile + UserCenterResourse.UserInfo.Account);
+            if (listFile.Contains(checkKeys) == true)
+            {
+                //鍑哄姏璇︾粏Log(Debug鐢�)
+                UserCenterResourse.HideOption.DetailedLog = 1;
+            }
+            checkKeys = UserCenterLogic.EncryptPassword(UserCenterResourse.FileEncryptKey, DirNameResourse.DeviceHistoryFile + UserCenterResourse.UserInfo.Account);
+            if (listFile.Contains(checkKeys) == true)
+            {
+                //鏄剧ず璁惧鍘嗗彶鐗堟湰(Debug鐢�)
+                UserCenterResourse.HideOption.DeviceHistory = 1;
+            }
+            checkKeys = UserCenterLogic.EncryptPassword(UserCenterResourse.FileEncryptKey, DirNameResourse.StartDebugAppFile + UserCenterResourse.UserInfo.Account);
+            if (listFile.Contains(checkKeys) == true)
+            {
+                //寮�鍚悗鍙拌皟璇旳pp鍔熻兘(Debug鐢�)
+                UserCenterResourse.HideOption.StartDebugApp = 1;
+            }
+            checkKeys = UserCenterLogic.EncryptPassword(UserCenterResourse.FileEncryptKey, DirNameResourse.CheckDeviceTypeFile + UserCenterResourse.UserInfo.Account);
+            if (listFile.Contains(checkKeys) == true)
+            {
+                //寮�鍚娴嬭澶嘥ype鐨�(Debug鐢�)
+                UserCenterResourse.HideOption.CheckDeviceType = 1;
+            }
+
             //鎭㈠
             IMessageCommon.Current.IgnoreError = false;
-
-            return result;
+            return true;
         }
 
         #endregion
@@ -611,34 +814,42 @@
         /// 璇诲彇APP澶囦唤鏂囨。(鍑芥暟鍐呴儴鏈夎繘搴︽潯)
         /// </summary>
         /// <param name="BackupClassId"></param>
-        public async Task<bool> LoadAppBackupInfo(string BackupClassId)
+        public bool LoadAppBackupInfo(string BackupClassId)
         {
             //鎵撳紑杩涘害鏉� 姝e湪鑾峰彇澶囦唤鏂囦欢鍒楄〃
             ProgressFormBar.Current.Start();
             ProgressFormBar.Current.SetMsg(Language.StringByID(R.MyInternationalizationString.uBackupFileListGetting));
 
             //浠庝簯绔幏鍙栧浠界殑鏂囦欢锛岀劧鍚庡瓨鍏ユ湰鍦扮殑涓存椂鏂囦欢澶�
-            string tempDirectory = await GetBackFileFromDBAndSetToLocation(BackupClassId);
+            string tempDirectory = GetBackFileFromDBAndSetToLocation(BackupClassId);
             if (tempDirectory == null)
             {
                 //鍏抽棴杩涘害鏉�
                 ProgressFormBar.Current.Close();
                 return false;
             }
-            //鍏抽棴杩涘害鏉�
-            ProgressFormBar.Current.Close();
 
+            //娓呯┖鍏ㄩ儴鎴块棿
+            HdlRoomLogic.Current.DeleteAllRoom();
+            //娓呯┖鏈湴鍏ㄩ儴鐨勫満鏅暟鎹�
+            HdlSceneLogic.Current.DeleteAllLocalScene();
             //濡傛灉璇诲彇鍒扮殑鏂囦欢瀹屽叏娌℃湁闂锛屽垯娓呯悊鏈湴鐨勬枃浠�
-            UserCenterLogic.DeleteAllLocationFile(false);
+            HdlFileLogic.Current.DeleteAllLocationFile(false);
+
+            //娓呯悊鏈湴鐨勬ā鏉挎枃浠�
+            TemplateData.TemplateCommonLogic.Current.DeleteAllLocalFile();
 
             //娌℃湁閿欒鐨勮瘽锛屽垯绉诲姩鍒板綋鍓嶄綇瀹呮枃浠跺す涓嬮潰
-            Global.MoveDirectoryFileToHomeDirectory(tempDirectory, true);
+            HdlFileLogic.Current.MoveDirectoryFileToHomeDirectory(tempDirectory, true);
 
             //鍒犻櫎鍏ㄩ儴鐨勮嚜鍔ㄥ浠界殑鏈湴鏂囦欢(姝ゅ嚱鏁扮敤浜庤鍙栬嚜鍔ㄥ浠界殑鏃跺�欎娇鐢�)
             HdlAutoBackupLogic.DeleteAllAutoBackupFile();
 
             //鍒锋柊鏈湴缂撳瓨
             UserCenterLogic.RefreshAllMemory();
+
+            //鍏抽棴杩涘害鏉�
+            ProgressFormBar.Current.Close();
 
             return true;
         }
@@ -652,14 +863,14 @@
         /// </summary>
         /// <param name="BackupClassId">澶囦唤鐨勪富閿�</param>
         /// <returns></returns>
-        public async Task<bool> DeleteDbBackupData(string BackupClassId)
+        public bool DeleteDbBackupData(string BackupClassId)
         {
             var Pra = new LoadBackInfoPra();
             Pra.BackupClassId = BackupClassId;
             //鑾峰彇鎺у埗涓讳汉璐﹀彿鐨凾oken
             Pra.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
 
-            bool success = await UserCenterLogic.GetResultStatuByRequestHttps("App/DelHomeAppGatewayName", true, Pra);
+            bool success = UserCenterLogic.GetResultStatuByRequestHttps("App/DelHomeAppGatewayName", true, Pra);
 
             return success;
         }
@@ -673,11 +884,14 @@
         /// </summary>
         /// <param name="file"></param>
         /// <returns></returns>
-        public bool IsNotUpLoadFile(string file)
+        private bool IsNotUpLoadFile(string file)
         {
-            if (file == "Config.json")
+            if (file.StartsWith("Device_") == true
+               || file.StartsWith("Gateway_") == true
+               || file.StartsWith("Room_") == true
+               || file.StartsWith("Scene_") == true)
             {
-                //涓嶈兘瑕嗙洊Config鏂囦欢
+                //璁惧,缃戝叧,鎴块棿,鍦烘櫙鏂囦欢涓嶉渶瑕佷笂浼�,瀹冨凡缁忎繚瀛樺湪bin妯℃澘鏂囦欢涓�
                 return true;
             }
             return false;

--
Gitblit v1.8.0