From 304dca51c28183a9dfc192c6b93ea1c00bdd5d97 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期三, 01 七月 2020 15:00:40 +0800
Subject: [PATCH] 添加了写入功能类型

---
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/UserCenterLogic.cs |  170 +++++++++++++++++++++++++++-----------------------------
 1 files changed, 82 insertions(+), 88 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/UserCenterLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/UserCenterLogic.cs
index 3d10478..3542581 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/UserCenterLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/UserCenterLogic.cs
@@ -95,6 +95,10 @@
                 }
             }
             var revertObj = JsonConvert.DeserializeObject<ResponsePack>(Encoding.UTF8.GetString(byteData));
+            if (revertObj == null)
+            {
+                return "Error";
+            }
             return revertObj.StateCode;
         }
 
@@ -143,7 +147,7 @@
             }
             if (revertObj == null || revertObj.ResponseData == null)
             {
-                return string.Empty;
+                return null;
             }
             return revertObj.ResponseData.ToString();
         }
@@ -368,17 +372,17 @@
         public static bool CheckCanAddForm(CommonFormBase form)
         {
             //鑾峰彇鐢婚潰鑻辨枃鍚嶅瓧
-            string formName = GetFormName(form);
+            string formId = GetFormID(form);
 
             //浜岄噸杩藉姞涓嶅彲
-            if (UserCenterResourse.DicActionForm.ContainsKey(formName) == false)
+            if (UserCenterResourse.DicActionForm.ContainsKey(formId) == false)
             {
                 return true;
             }
             //鏆傛椂杩欐牱寮勭湅鐪嬶紝濡傛灉閲嶅锛屽垯鍏抽棴鎺夊師鏉ョ殑鐣岄潰
-            var formTemp = UserCenterResourse.DicActionForm[formName];
+            var formTemp = UserCenterResourse.DicActionForm[formId];
             formTemp.CloseForm();
-            UserCenterResourse.DicActionForm.Remove(formName);
+            UserCenterResourse.DicActionForm.Remove(formId);
 
             return true;
         }
@@ -390,14 +394,14 @@
         public static void AddActionForm(CommonFormBase form)
         {
             //鑾峰彇鐢婚潰鑻辨枃鍚嶅瓧
-            string formName = GetFormName(form);
+            string formId = GetFormID(form);
 
             //浜岄噸杩藉姞涓嶅彲
-            if (UserCenterResourse.DicActionForm.ContainsKey(formName) == false)
+            if (UserCenterResourse.DicActionForm.ContainsKey(formId) == false)
             {
-                form.FormID = formName;
+                form.FormID = formId;
                 //鍐呭瓨娣诲姞
-                UserCenterResourse.DicActionForm[formName] = form;
+                UserCenterResourse.DicActionForm[formId] = form;
                 //娣诲姞鐢婚潰鏃讹紝瀹冭嚜韬氨鏄縺娲荤殑鐣岄潰
                 UserCenterResourse.NowActionFormID = form.FormID;
 
@@ -408,71 +412,43 @@
         /// <summary>
         /// 浠庡垪琛ㄤ腑绉婚櫎鐢婚潰
         /// </summary>
-        /// <param name="form">Form</param>
-        public static void RemoveActionForm(CommonFormBase form)
+        /// <param name="i_closeForm">鍏抽棴鐨勭晫闈�</param>
+        public static void RemoveActionForm(CommonFormBase i_closeForm)
         {
-            //鑾峰彇鐢婚潰鑻辨枃鍚嶅瓧
-            string formName = GetFormName(form);
+            //鑾峰彇鐢婚潰ID
+            string formId = GetFormID(i_closeForm);
 
-            if (UserCenterResourse.DicActionForm.ContainsKey(formName) == true)
+            if (UserCenterResourse.DicActionForm.ContainsKey(formId) == true)
             {
-                //鍒锋柊褰撳墠姝e湪鎿嶄綔鐨勭敾闈D
-                if (UserCenterResourse.NowActionFormID == UserCenterResourse.DicActionForm[formName].FormID)
-                {
-                    //鍚戝墠鎺ㄤ竴浣嶅嵆涓轰笅涓�涓縺娲荤殑鐣岄潰
-                    int index = UserCenterResourse.listActionFormId.IndexOf(UserCenterResourse.NowActionFormID) - 1;
-                    //鍒濆鍊�
-                    UserCenterResourse.NowActionFormID = string.Empty;
-                    if (index >= 0)
-                    {
-                        var actionForm = UserView.HomePage.Instance.GetChildren(UserView.HomePage.Instance.ChildrenCount - 1);
-                        if (actionForm != null && actionForm is CommonFormBase)
-                        {
-                            string formId = ((CommonFormBase)actionForm).FormID;
-                            //瀵瑰簲寰愭缁ф壙浜嗗簳灞傦紝浣嗘槸涓嶅垵濮嬪寲鏁版嵁鐨勯棶棰�
-                            if (UserCenterResourse.listActionFormId.Contains(formId) == true)
-                            {
-                                //璋冪敤鐣岄潰閲嶆柊婵�娲荤殑鍑芥暟
-                                CallFormActionAgainEvent(form, index);
-                            }
-                        }
-                        else if (actionForm != null && actionForm is UserView.UserPage)
-                        {
-                            //杩欓噷瀹冨凡缁忛��鍒颁富椤典簡
-                            if (UserCenterResourse.listActionFormId.Contains("UserMainForm") == true//涓汉涓績
-                                || UserCenterResourse.listActionFormId.Contains("HomeMainPageForm") == true)//
-                            {
-                                //璋冪敤鐣岄潰閲嶆柊婵�娲荤殑鍑芥暟
-                                CallFormActionAgainEvent(form, index);
-                            }
-                        }
-                    }
-                }
                 //绉婚櫎ID
-                UserCenterResourse.listActionFormId.Remove(UserCenterResourse.DicActionForm[formName].FormID);
+                UserCenterResourse.listActionFormId.Remove(formId);
                 //绉婚櫎鐢婚潰
-                UserCenterResourse.DicActionForm.Remove(formName);
-            }
-        }
+                UserCenterResourse.DicActionForm.Remove(formId);
+                //娓呯┖
+                UserCenterResourse.NowActionFormID = string.Empty;
 
-        /// <summary>
-        /// 璋冪敤鐣岄潰閲嶆柊婵�娲荤殑鍑芥暟
-        /// </summary>
-        /// <param name="form">鍏抽棴鐨勭晫闈㈠璞�</param>
-        /// <param name="index">褰撳墠闇�瑕侀噸鏂版縺娲荤晫闈㈢殑绱㈠紩</param>
-        private static void CallFormActionAgainEvent(CommonFormBase form, int index)
-        {
-            //璁剧疆褰撳墠婵�娲荤殑鐢婚潰ID
-            UserCenterResourse.NowActionFormID = UserCenterResourse.listActionFormId[index];
-            //杩藉姞鏉′欢涓�:鍏抽棴鐨勭晫闈负EditorCommonForm鐨勬椂鍊欐墠澶勭悊
-            if ((form is EditorCommonForm) && UserCenterResourse.DicActionForm.ContainsKey(UserCenterResourse.NowActionFormID) == true)
-            {
-                try
+                var actionForm = UserView.HomePage.Instance.GetChildren(UserView.HomePage.Instance.ChildrenCount - 1);
+                if (actionForm == null)
                 {
-                    var Myform = UserCenterResourse.DicActionForm[UserCenterResourse.NowActionFormID] as EditorCommonForm;
-                    //鐐瑰嚮寰堝揩鏃�,杩欎釜涓滆タ浼氭槸null,浣嗘槸DicActionForm閲岄潰涓嶆槸null,涓嶇煡閬撲负浠�涔�
-                    if (Myform != null)
+                    return;
+                }
+                //濡傛灉鍏抽棴鐨勭晫闈㈡槸DialogCommonForm绫诲瀷,鍒欎笉闇�瑕佽Е鍙戞縺娲诲嚱鏁�
+                if (i_closeForm is DialogCommonForm)
+                {
+                    if (actionForm is EditorCommonForm)
                     {
+                        UserCenterResourse.NowActionFormID = GetFormID((EditorCommonForm)actionForm);
+                    }
+                    return;
+                }
+                //鍏抽棴鐨勭晫闈负EditorCommonForm鐨勬椂鍊�
+                else if ((i_closeForm is EditorCommonForm) && (actionForm is EditorCommonForm))
+                {
+                    //鎺ヤ笅鏉ユ縺娲荤殑鐣岄潰id
+                    UserCenterResourse.NowActionFormID = GetFormID((CommonFormBase)actionForm);
+                    try
+                    {
+                        var Myform = actionForm as EditorCommonForm;
                         //閲嶇疆宸︽粦浣胯兘
                         Myform.ScrollEnabled = Myform.ScrollEnabled;
                         //瑙﹀彂鐣岄潰鍐嶆婵�娲荤殑浜嬩欢
@@ -483,25 +459,34 @@
                             HdlLogLogic.Current.WriteLog(1, Myform.FormID + " 琚縺娲�");
                         }
                     }
+                    catch (Exception ex)
+                    {
+                        //Log鍑哄姏
+                        HdlLogLogic.Current.WriteLog(ex, "鐣岄潰閲嶆柊婵�娲诲紓甯� " + UserCenterResourse.NowActionFormID);
+                    }
                 }
-                catch (Exception ex)
+                else if (actionForm is UserView.UserPage)
                 {
-                    //鍑虹幇鏈煡閿欒,鏁版嵁涓㈠け
-                    //var alert = new ShowMsgControl(ShowMsgType.Error, Language.StringByID(R.MyInternationalizationString.uUnKnownError));
-                    //alert.Show();
-
-                    //Log鍑哄姏
-                    HdlLogLogic.Current.WriteLog(ex, "鐣岄潰閲嶆柊婵�娲诲紓甯� " + UserCenterResourse.NowActionFormID);
+                    //娓呯┖
+                    UserCenterResourse.NowActionFormID = string.Empty;
+                    //杩欓噷瀹冨凡缁忛��鍒颁富椤典簡
+                    var nowForm = UserView.UserPage.Instance.GetNowActionForm();
+                    nowForm?.FormActionAgainEvent();
+                }
+                else
+                {
+                    //娓呯┖
+                    UserCenterResourse.NowActionFormID = string.Empty;
                 }
             }
         }
 
         /// <summary>
-        /// 鑾峰彇鐢婚潰鑻辨枃鍚嶅瓧
+        /// 鑾峰彇鐢婚潰ID
         /// </summary>
         /// <returns>The form name.</returns>
         /// <param name="form">Form.</param>
-        public static string GetFormName(CommonFormBase form)
+        private static string GetFormID(CommonFormBase form)
         {
             if (form.FormID != string.Empty)
             {
@@ -559,7 +544,7 @@
             double Longitude = Config.Instance.Home.Longitude;
             double Latitude = Config.Instance.Home.Latitude;
             //杩樺師浣忓畢瀵硅薄
-            Config.Instance.Home = House.GetHouseByHouseId(Config.Instance.Home.Id);
+            Config.Instance.Home = HdlResidenceLogic.Current.GetHouseByHouseId(Config.Instance.Home.Id);
             Config.Instance.Home.IsOthreShare = isOthreShare;
             Config.Instance.Home.AccountType = accountType;
             Config.Instance.Home.MainUserDistributedMark = mainMark;
@@ -677,12 +662,12 @@
                 //娓呯┖褰撳墠浣忓畢id
                 Config.Instance.HomeId = string.Empty;
                 HdlGatewayLogic.Current.ClearAllRealGateway();
-                try
+
+                //鏂紑杩滅▼Mqtt杩炴帴
+                HdlThreadLogic.Current.RunThread(async () =>
                 {
-                    //鏂紑杩滅▼Mqtt杩炴帴
-                    ZigBee.Device.ZbGateway.DisConnectRemoteMqttClient();
-                }
-                catch { }
+                    await ZigBee.Device.ZbGateway.DisConnectRemoteMqttClient();
+                }, ShowErrorMode.NO);
 
                 HdlThreadLogic.Current.RunMain(() =>
                 {
@@ -872,12 +857,11 @@
             if (Common.Config.Instance.HomeId != UserCenterResourse.AccountOption.OldHomeStringId
                 || Common.Config.Instance.Account != UserCenterResourse.AccountOption.OldAccountId)
             {
-                try
+                //鏂紑杩滅▼Mqtt杩炴帴
+                HdlThreadLogic.Current.RunThread(async () =>
                 {
-                    //鏂紑杩滅▼Mqtt杩炴帴
                     await ZigBee.Device.ZbGateway.DisConnectRemoteMqttClient();
-                }
-                catch { }
+                }, ShowErrorMode.NO);
 
                 //娓呯┖鎵�鏈夋垚鍛樼紦瀛�
                 ClearAllMemberMemory();
@@ -929,7 +913,7 @@
                 //鍒濆鍖栨湰鍦扮殑缃戝叧淇℃伅
                 HdlGatewayLogic.Current.ReFreshByLocal();
                 //鍒濆鍖栨湰鍦扮殑璁惧淇℃伅
-                Common.LocalDevice.Current.ReFreshByLocal();
+                LocalDevice.Current.ReFreshByLocal();
 
                 //鍒濆鍖栨埧闂�(閮洩鍩庨偅杈逛笉鍋氬鐞�,闇�瑕佽繖閲岀壒娈婃墽琛屼竴姝�)
                 HdlRoomLogic.Current.RefreshAllRoomByLocation();
@@ -1501,14 +1485,24 @@
         #region 鈻� 鏂囦欢淇濆瓨鍜岃鍙朹____________________
 
         /// <summary>
-        /// 鏂囦欢淇濆瓨,浠呴檺褰撳墠浣忓畢(鏁村ぉ蹇樿,鎵�浠ュ缓涓�涓嚱鏁版潵鐜╃帺)
+        /// 鏂囦欢淇濆瓨(鏁村ぉ蹇樿,鎵�浠ュ缓涓�涓嚱鏁版潵鐜╃帺)
         /// </summary>
         /// <param name="fullName">鍏ㄨ矾寰�</param>
         /// <param name="obj">闇�瑕佸簭鍒楀寲鐨勪笢瑗�</param>
         public static void SaveFileContent(string fullName, object obj)
         {
             var data = JsonConvert.SerializeObject(obj);
-            var byteData = Encoding.UTF8.GetBytes(data);
+            SaveTexToFile(fullName, data);
+        }
+
+        /// <summary>
+        /// 鏂囦欢淇濆瓨(鏁村ぉ蹇樿,鎵�浠ュ缓涓�涓嚱鏁版潵鐜╃帺)
+        /// </summary>
+        /// <param name="fullName">鍏ㄨ矾寰�</param>
+        /// <param name="obj">闇�瑕佸簭鍒楀寲鐨勪笢瑗�</param>
+        public static void SaveTexToFile(string fullName, string textValue)
+        {
+            var byteData = Encoding.UTF8.GetBytes(textValue);
             //鍐欏叆鍐呭
             System.IO.FileStream fileStream = null;
             try

--
Gitblit v1.8.0