From e96e11d6f8b965ea522c983e040d41e3b9ef105a Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期一, 18 五月 2020 21:33:19 +0800
Subject: [PATCH] 2020-05-18-4

---
 ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs |  174 +++++++++++++++++++++++-----------------------------------
 1 files changed, 69 insertions(+), 105 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs
old mode 100755
new mode 100644
index 31d2467..096bed2
--- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs
@@ -47,7 +47,7 @@
         /// </summary>
         bool canVolume = false;
         /// <summary>
-        /// 淇濈暀涓婁竴娆¢煶閲�
+        /// 鏄惁鏀寔甯稿紑
         /// </summary>
         bool canOpenNormallyMode = false;
         /// <summary>
@@ -218,7 +218,7 @@
 
             ClickHandle();
 
-            if (doorLock.IsOnline == 1)
+            if (Common.LocalDevice.Current.CheckDeviceIsOnline(doorLock) == true)
             {
                 ReadDoorLockUserInfo();
             }
@@ -605,15 +605,11 @@
                         {
                             return;
                         }
-                        string key = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
-                        if (doorLock.IsDoorLockNormallyMode.ContainsKey(key))
+                        if (doorLock.IsDoorLockNormallyMode)
                         {
-                            if (doorLock.IsDoorLockNormallyMode[key] == true)
-                            {
-                                if (canOpenNormallyMode)
-                                {
-                                    Application.RunOnMainThread(() => { NomallyOpenModeInvalidDialog(true); });
-                                }
+                            if (canOpenNormallyMode)
+                            {
+                                Application.RunOnMainThread(() => { NomallyOpenModeInvalidDialog(true); });
                             }
                         }
                     }
@@ -688,7 +684,7 @@
                             DoorLockCommonInfo.NormallyOpenModeValue(doorLock, tempRes);
                             Application.RunOnMainThread(async () =>
                             {
-                                var resTemp = await Shared.Phone.Device.Logic.SkipView.Exist();
+                                var resTemp = await Shared.Phone.Device.Logic.SkipView.Exist(3,doorLock);
                                 if (resTemp == 1)
                                 {
                                     HaveLogicNormallyOpenMode = true;
@@ -774,6 +770,7 @@
         /// </summary>
         public void ClickHandle()
         {
+          
             //闂ㄩ攣鏍囬
             btnDoorLockTitle.Text = Common.LocalDevice.Current.GetDeviceMacName(doorLock);
 
@@ -788,8 +785,9 @@
             //璁剧疆
             EventHandler<MouseEventArgs> btnFuncSetHander = (sender, e) =>
             {
-                //鎵撳紑鍏朵粬鐣岄潰鏃跺墠绉婚櫎
-                RemoveFromParent();
+                //鎵撳紑鍏朵粬鐣岄潰鏃跺墠绉婚櫎銆愭殏鏃朵笉绉婚櫎銆�
+                //RemoveFromParent();
+
                 var functionSetting = new Shared.Phone.UserCenter.DoorLock.FunctionSetting(currentRoom, doorLock);
                 Shared.Phone.UserView.HomePage.Instance.AddChidren(functionSetting);
                 Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
@@ -848,20 +846,11 @@
             //寮�閿佷簨浠�
             EventHandler<MouseEventArgs> hander1 = async (sender, e) =>
             {
-
-                string key = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
-                if (doorLock.IsDoorLockNormallyMode.ContainsKey(key))
+                if (doorLock.IsDoorLockNormallyMode)
                 {
-                    if (doorLock.IsDoorLockNormallyMode[key] == true)
-                    {
-                        if (canOpenNormallyMode)
-                        {
-                            NomallyOpenModeInvalidDialog(false);
-                        }
-                        else
-                        {
-                            OpenDoorLockHandle(progressButton, btnDoorLockPic, btnStatus);
-                        }
+                    if (canOpenNormallyMode)
+                    {
+                        NomallyOpenModeInvalidDialog(false);
                     }
                     else
                     {
@@ -885,13 +874,9 @@
             {
                 if (canOpenNormallyMode)
                 {
-                    var key = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
-                    if (doorLock.IsDoorLockNormallyMode.ContainsKey(key))
+                    if (doorLock.IsDoorLockNormallyMode)
                     {
-                        if (doorLock.IsDoorLockNormallyMode[key] == true)
-                        {
-                            NomallyOpenModeInvalidDialog();
-                        }
+                        NomallyOpenModeInvalidDialog();
                     }
                 }
                 else
@@ -1040,68 +1025,51 @@
         /// </summary>
         private async void NomallyOpenDialog()
         {
-            if (!btnNormallyOpen.IsSelected)
+            if (UserCenterResourse.UserInfo.AuthorityNo != 1)
             {
-                if (UserCenterResourse.UserInfo.AuthorityNo != 1)
-                {
-                    this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.OnlyMasterOperate));
-                    return;
+                this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.OnlyMasterOperate));
+                return;
+            }
+
+            if (!UserCenterResourse.AccountOption.DoorUnLockByRemote)
+            {
+                SystemSecondAuthentication();
+                return;
+            }
+
+            action = () =>
+            {
+                //绯荤粺瀵嗙爜鏀寔鎿嶄綔闂ㄩ攣鍚庯紝璋冪敤娓╁眳鍩庣殑鐣岄潰銆愬父寮�鑷姩鍖栥��
+                if (doorLock == null)
+                {
+                    ///闃叉鎶涘紓甯�
+                    return;
+                }
+                ///澶囨敞锛歐JC鐨�
+                Shared.Phone.Device.Logic.Send.CurrentDoorLock = doorLock;
+                ///杩涙潵鍒锋柊涓�娆¤澶囧垪琛紱
+                Common.Logic.LogicDviceList.Clear();
+                if (Common.Logic.LogicDviceList.Count == 0)
+                {
+                    Common.Logic.LogicDviceList.AddRange(LocalDevice.Current.listAllDevice.ToArray());
                 }
-
-                if (!UserCenterResourse.AccountOption.DoorUnLockByRemote)
+            
+                var addLogicPage = new Shared.Phone.Device.Logic.SoneLogicList();
+                UserView.HomePage.Instance.AddChidren(addLogicPage);
+                UserView.HomePage.Instance.PageIndex += 1;
+                addLogicPage.Show();
+                addLogicPage._if = true;
+                addLogicPage.action += (w) =>
                 {
-                    SystemSecondAuthentication();
-                    return;
-                }
-
-                action = () =>
-                {
-                    string msg = Language.StringByID(R.MyInternationalizationString.SetDoorLockNomallyOpen).Replace("{0}", "\r\n");
-                    var confirm = Language.StringByID(R.MyInternationalizationString.Confrim);
-                    var alert = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.Confirm, msg, confirm);
-                    alert.Show();
-
-                    alert.ConfirmClickEvent += async () =>
-                    {
-                        Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); });
-                        var result = await doorLock.SetNormallyOpenModeFuncAsync(true);
-                        if (result == null || result.defaultControlResponseData == null)
-                        {
-                            string msg0 = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime);
-                            this.ShowTipMsg(msg0);
-                            return;
-                        }
-                        if (result.defaultControlResponseData.status != 0)
-                        {
-                            string msg1 = Language.StringByID(R.MyInternationalizationString.OpenNormallyOpenModeFailed);
-                            this.ShowTipMsg(msg1);
-                            return;
-                        }
-                        else
-                        {
-                            //娣诲姞App寮�鍚父寮�妯″紡鐨勫巻鍙茶褰�
-                            HdlDeviceDoorLockLogic.Current.AddDoorHistoryLog(this.doorLock, 9001, string.Empty);
-
-                            //姣忔閲嶆柊璁剧疆甯稿紑锛岄粯璁ゆ椂闂撮兘鏄�12灏忔椂
-                            DoorLockCommonInfo.NormallyOpenModeInvalidTime = 12;
-                            DoorLockCommonInfo.NormallyOpenModeValue(doorLock, true);
-                            Application.RunOnMainThread(() =>
-                            {
-                                UpdateNomallyOpenStatus();
-                                CommonPage.Loading.Hide();
-                            });
-
-                            //甯稿紑妯″紡寮�鍚彁绀�
-                            AlreadyOpenNormallyMode();
-                        }
-                    };
+                    doorLock.IsDoorLockNormallyMode = w;
+                    ///鐣欑粰寰愭鐢ㄧ殑
+                    UpdateNomallyOpenStatus();
                 };
-                HdlCheckLogic.Current.CheckSecondarySecurity(action);
-            }
-            else
-            {
-                NomallyOpenModeInvalidDialog();
-            }
+
+            };
+            HdlCheckLogic.Current.CheckSecondarySecurity(action);
+
+
         }
 
         /// <summary>
@@ -1137,7 +1105,7 @@
                     //鍒犻櫎宸茬粡澶辨晥鐨勨�滃父寮�妯″紡鈥濈殑閫昏緫
                     if (HaveLogicNormallyOpenMode)
                     {
-                        var resTemp = await Shared.Phone.Device.Logic.SkipView.Exist(3);
+                        var resTemp = await Shared.Phone.Device.Logic.SkipView.Exist(3,doorLock);
                         //if (resTemp == 3)
                         //{
                         //    string msg0 = Language.StringByID(R.MyInternationalizationString.CancelLogicNormallyModeFailed);
@@ -1165,7 +1133,7 @@
                     //鍏堝垹闄ゅ凡澶辨晥鐨勨�滃父寮�妯″紡鈥濈殑閫昏緫
                     if (HaveLogicNormallyOpenMode)
                     {
-                        var resTemp = await Shared.Phone.Device.Logic.SkipView.Exist(3);
+                        var resTemp = await Shared.Phone.Device.Logic.SkipView.Exist(3,doorLock);
                         //if (resTemp == 3)
                         //{
                         //    string msg0 = Language.StringByID(R.MyInternationalizationString.CancelLogicNormallyModeFailed2);
@@ -1177,11 +1145,11 @@
                     var result = await doorLock.SetNormallyOpenModeFuncAsync(true);
                     if (result == null || result.defaultControlResponseData == null)
                     {
-                        string msg0 = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime);
-                        this.ShowTipMsg(msg0);
-                        DoorLockCommonInfo.NormallyOpenModeValue(doorLock, false);
                         Application.RunOnMainThread(() =>
                         {
+                            string msg0 = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime);
+                            this.ShowTipMsg(msg0);
+                            DoorLockCommonInfo.NormallyOpenModeValue(doorLock, false);
                             UpdateNomallyOpenStatus();
                         });
                         return;
@@ -1242,7 +1210,7 @@
                     //鍒犻櫎宸茬粡澶辨晥鐨勨�滃父寮�妯″紡鈥濈殑閫昏緫
                     if (HaveLogicNormallyOpenMode)
                     {
-                        var resTemp = await Shared.Phone.Device.Logic.SkipView.Exist(3);
+                        var resTemp = await Shared.Phone.Device.Logic.SkipView.Exist(3,doorLock);
                         //if (resTemp == 3)
                         //{
                         //    string msg0 = Language.StringByID(R.MyInternationalizationString.CancelLogicNormallyModeFailed);
@@ -1281,7 +1249,7 @@
                         //鍒犻櫎璁剧疆甯稿紑妯″紡鍒涘缓鐨勯�昏緫
                         if (HaveLogicNormallyOpenMode)
                         {
-                            var resTemp = await Shared.Phone.Device.Logic.SkipView.Exist(3);
+                            var resTemp = await Shared.Phone.Device.Logic.SkipView.Exist(3,doorLock);
                             //鍥犱负鐩墠鏈哄埗闂锛岄�昏緫缁忓父澶辫触锛屾墍浠ヤ笉鎻愮ず锛屽悗鏈熸満鍒惰鏀癸紝閲嶆柊鍋氫竴涓繖涓晫闈�
                             //if (resTemp == 3)
                             //{
@@ -1354,7 +1322,7 @@
                  DoorLockCommonInfo.NormallyOpenModeInvalidTime = temp;
                  //榛樿鍒涘缓甯稿紑妯″紡鐨勭壒娈婇�昏緫 
                  var res = await Shared.Phone.Device.Logic.SkipView.LockAddModifyLogic(DoorLockCommonInfo.NormallyOpenModeInvalidTime, doorLock);
-                 if (!res)
+                 if (res==0)
                  {
                      //榛樿鍒涘缓甯稿紑妯″紡澶辫触
                      string msg0 = Language.StringByID(R.MyInternationalizationString.AddLogicNormallyModeFailed);
@@ -1376,12 +1344,7 @@
                 btnNormallyOpenFrameLayout.Width = Application.GetRealWidth(0);
                 return;
             }
-            string key = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
-            if (!doorLock.IsDoorLockNormallyMode.ContainsKey(key))
-            {
-                return;
-            }
-            if (doorLock.IsDoorLockNormallyMode[key] == true)
+            if (doorLock.IsDoorLockNormallyMode)
             {
                 btnNormallyOpen.IsSelected = true;
                 btnDoorLockPic.IsSelected = true;
@@ -1389,7 +1352,7 @@
                 btnStatus.Text = Language.StringByID(R.MyInternationalizationString.Current) + Language.StringByID(R.MyInternationalizationString.DoorLockOpen);
 
             }
-            else if (doorLock.IsDoorLockNormallyMode[key] == false)
+            else if (!doorLock.IsDoorLockNormallyMode)
             {
                 btnStatus.Text = Language.StringByID(R.MyInternationalizationString.Current) + Language.StringByID(R.MyInternationalizationString.CLose);
                 btnDoorLockPic.IsSelected = false;
@@ -1478,6 +1441,7 @@
                 CommonPage.Instance.IsDrawerLockMode = false;
             }
             ZbGateway.StatusList.Remove(this);
+            DoorLockCommonInfo.LogicAction = null;
             base.RemoveFromParent();
         }
         #endregion

--
Gitblit v1.8.0