From c6b35c3138b944830b5336bf610f918154dd47c7 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期六, 12 十月 2019 15:45:10 +0800
Subject: [PATCH] 合并门锁,完成住宅管理

---
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlBackupLogic.cs |  114 ++++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 100 insertions(+), 14 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlBackupLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlBackupLogic.cs
index 04d01da..a5ef6ca 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlBackupLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlBackupLogic.cs
@@ -35,6 +35,11 @@
             }
         }
 
+        /// <summary>
+        /// Log澶囦唤鐨勫悕瀛�
+        /// </summary>
+        private string LogBackupName = "##Log##";
+
         #endregion
 
         #region 鈻� 鑾峰彇澶囦唤鍚嶅瓧鍒楄〃___________________
@@ -44,8 +49,9 @@
         /// </summary>
         /// <param name="ZigbeeBackupType">0:App鎵嬪姩澶囦唤 1: App 鑷姩澶囦唤 2锛氱綉鍏虫墜鍔ㄥ浠� 3:缃戝叧鑷姩澶囦唤</param>
         /// <param name="ZigbeeUniqueId">缃戝叧鐨勫敮涓�Id,鑾峰彇缃戝叧澶囦唤闇�瑕�</param>
+        /// <param name="getLogBackup">鏄惁鑾峰彇Log澶囦唤</param>
         /// <returns></returns>
-        public async Task<List<BackupListNameInfo>> GetBackupListNameFromDB(int ZigbeeBackupType = 0, string ZigbeeUniqueId = null)
+        public async Task<List<BackupListNameInfo>> GetBackupListNameFromDB(int ZigbeeBackupType = 0, string ZigbeeUniqueId = null, bool getLogBackup = false)
         {
             //澶囦唤鍚嶅瓧寰堝皯鐨勫唴瀛橈紝鍙互鐩存帴涓�娆℃�у叏閮ㄥ彇瀹�
             var pra = new GetBackupListPra();
@@ -65,20 +71,21 @@
             }
 
             var data = Newtonsoft.Json.JsonConvert.DeserializeObject<GetBackupListResult>(result);
-            if (ZigbeeUniqueId != null)
+            var list = new List<BackupListNameInfo>();
+            foreach (var data2 in data.PageData)
             {
-                var list = new List<BackupListNameInfo>();
-                foreach (var data2 in data.PageData)
+                if (ZigbeeUniqueId != null && data2.GatewayUniqueId != ZigbeeUniqueId)
                 {
-                    if (data2.GatewayUniqueId == ZigbeeUniqueId)
-                    {
-                        list.Add(data2);
-                    }
+                    continue;
                 }
-                return list;
+                if (getLogBackup == false && data2.BackupName == LogBackupName)
+                {
+                    //涓嶈幏鍙朙og澶囦唤
+                    continue;
+                }
+                list.Add(data2);
             }
-
-            return data.PageData;
+            return list;
         }
 
         /// <summary>
@@ -222,8 +229,9 @@
         /// <param name="BackupClassId">澶囦唤涓婚敭ID</param>
         /// <param name="ManualBackupType">鎵嬪姩澶囦唤绫诲瀷(0:App鎵嬪姩澶囦唤,2锛氱綉鍏虫墜鍔ㄥ浠�)</param>
         /// <param name="upPath">鎸囧畾涓婁紶鐨勬槸鍝釜鏂囦欢澶圭殑鏂囦欢(鍏ㄨ矾寰�),涓嶆寚瀹氭椂锛屼笂浼犵殑鏄湰鍦拌矾寰勪笅鐨勬枃浠�</param>
+        /// <param name="setBarMaxValue">鏄惁璁剧疆杩涘害鏉$殑鏈�澶у��(杩欎釜涓滆タ涓�鑸笉鐢ㄥ姩瀹�)</param>
         /// <returns></returns>
-        public async Task<bool> UpLoadBackupFileToDB(string BackupClassId, int ManualBackupType = 0, string upPath = "")
+        public async Task<bool> UpLoadBackupFileToDB(string BackupClassId, int ManualBackupType = 0, string upPath = "", bool setBarMaxValue = true)
         {
             List<string> listAllFile = null;
             //鏂囦欢澶圭殑鍏ㄨ矾寰�
@@ -261,8 +269,11 @@
             }
 
             //寮�鍚繘搴︽潯
-            ProgressBar.SetMaxValue(listAllFile.Count);
-            ProgressBar.Show();
+            if (setBarMaxValue == true)
+            {
+                ProgressBar.SetMaxValue(listAllFile.Count);
+                ProgressBar.Show();
+            }
 
             //浣犺涓轰粈涔堣繖閲屼笉鍒嗕竴涓嚱鏁板嚭鏉ワ紙鐞嗚涓婃槸鍒嗗嚱鏁板嚭鏉ョ殑锛�
             //鏄洜涓哄鏋滃垎鍑芥暟鐨勮瘽锛屼細鍑虹幇鍙岄噸寮傛锛屽鑷翠富绾跨▼鐨勮繘搴︽潯鐨勭櫨鍒嗘瘮姘歌繙瀹氭0%
@@ -325,6 +336,14 @@
                 //璁剧疆杩涘害鍊�
                 ProgressBar.SetValue(listPic.Count);
             }
+
+            //涓婁紶Log澶囦唤
+            if (upPath != UserCenterLogic.CombinePath(DirNameResourse.LocalMemoryDirectory, DirNameResourse.LogDirectory))
+            {
+                //閲岄潰鏈変釜鍥炶皟鑷韩鐨勬柟娉�,鎵�浠ヨ繖閲屽姞涓垽鏂�,涓嶇劧浼氭寰幆
+                await this.UpLoadLogBackup();
+            }
+
             //杩涘害鏉″叧闂�
             ProgressBar.Close();
 
@@ -483,6 +502,73 @@
 
         #endregion
 
+        #region 鈻� 涓婁紶Log澶囦唤________________________
+
+        /// <summary>
+        /// 涓婁紶Log澶囦唤
+        /// </summary>
+        /// <returns></returns>
+        private async Task<bool> UpLoadLogBackup()
+        {
+            string upPath = UserCenterLogic.CombinePath(DirNameResourse.LocalMemoryDirectory, DirNameResourse.LogDirectory);
+            if (HdlAutoBackupLogic.GetFileFromDirectory(upPath).Count == 0)
+            {
+                //娌℃湁Log鏂囦欢
+                return true;
+            }
+
+            //鏃犺閿欒
+            IMessageCommon.Current.IgnoreError = true;
+            //浠庝簯绔幏鍙栨暟鎹�
+            var pageData = await HdlBackupLogic.Current.GetBackupListNameFromDB(0, null, true);
+            if (pageData == null)
+            {
+                //鎭㈠
+                IMessageCommon.Current.IgnoreError = false;
+                return false;
+            }
+            for (int i = 0; i < pageData.Count; i++)
+            {
+                if (pageData[i].BackupName == LogBackupName)
+                {
+                    //鍒犻櫎鎺夎繖涓浠�
+                    bool flage = await this.DeleteDbBackupData(pageData[i].Id);
+                    if (flage == false)
+                    {
+                        //鎭㈠
+                        IMessageCommon.Current.IgnoreError = false;
+                        return false;
+                    }
+                    break;
+                }
+            }
+            //鍒涘缓鏂扮殑澶囦唤
+            string backupClassId = await HdlBackupLogic.Current.CreatNewBackupNameToDB(LogBackupName);
+            if (backupClassId == null)
+            {
+                //鎭㈠
+                IMessageCommon.Current.IgnoreError = false;
+                return false;
+            }
+            //涓婁紶Log鏂囦欢
+            bool result = await this.UpLoadBackupFileToDB(backupClassId, 0, upPath, false);
+            if (result == true)
+            {
+                try
+                {
+                    //鍒犻櫎鏈湴鍏ㄩ儴Log
+                    Global.CreateEmptyDirectory(Path.Combine(DirNameResourse.LocalMemoryDirectory, DirNameResourse.LogDirectory), true);
+                }
+                catch { }
+            }
+            //鎭㈠
+            IMessageCommon.Current.IgnoreError = false;
+
+            return result;
+        }
+
+        #endregion
+
         #region 鈻� 璇诲彇澶囦唤___________________________
 
         /// <summary>

--
Gitblit v1.8.0