From e406f66352fa72ef830ec237ca18d9e8816cb470 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期三, 13 五月 2020 16:02:29 +0800
Subject: [PATCH] 2020-05-13-1

---
 ZigbeeApp/Shared/Phone/Device/Logic/SkipView.cs                    |   74 +++++++++++++++++++++---
 ZigbeeApp/.vs/GateWay/xs/UserPrefs.xml                             |   23 ++++---
 ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockLogicList.cs |   27 +++++---
 ZigbeeApp/.vs/GateWay/xs/sqlite3/storage.ide                       |    0 
 .DS_Store                                                          |    0 
 ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs               |    5 +
 6 files changed, 98 insertions(+), 31 deletions(-)

diff --git a/.DS_Store b/.DS_Store
index dc97961..54726f6 100644
--- a/.DS_Store
+++ b/.DS_Store
Binary files differ
diff --git a/ZigbeeApp/.vs/GateWay/xs/UserPrefs.xml b/ZigbeeApp/.vs/GateWay/xs/UserPrefs.xml
index 548dc9b..4c0faa9 100644
--- a/ZigbeeApp/.vs/GateWay/xs/UserPrefs.xml
+++ b/ZigbeeApp/.vs/GateWay/xs/UserPrefs.xml
@@ -1,31 +1,34 @@
 锘�<Properties StartupConfiguration="{28EDE1FF-20EF-476B-8AF8-24A3EEB69F45}|Default">
   <MonoDevelop.Ide.ItemProperties.GateWay.Droid PreferredExecutionTarget="Android.5c86e4357d63" />
   <MonoDevelop.Ide.ItemProperties.ShardLib PreferredExecutionTarget="Android.M7BBB18B19152766" />
-  <MonoDevelop.Ide.Workbench ActiveDocument="Shared/Phone/Device/Logic/SoneLogicList.cs">
+  <MonoDevelop.Ide.Workbench ActiveDocument="Shared/Phone/Device/Logic/SkipView.cs">
     <Files>
-      <File FileName="Shared/Phone/Device/Logic/LogicView/TipView.cs" Line="416" Column="19" />
-      <File FileName="Shared/Phone/Device/Logic/SkipView.cs" Line="706" Column="116" />
-      <File FileName="Shared/Phone/Device/Logic/Send.cs" Line="102" Column="75" />
-      <File FileName="Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs" Line="1302" Column="15" />
-      <File FileName="Shared/Phone/Device/Logic/SoneLogicList.cs" Line="67" Column="16" />
+      <File FileName="Shared/Phone/Device/Logic/LogicView/TipView.cs" Line="101" Column="73" />
+      <File FileName="Shared/Phone/Device/Logic/SkipView.cs" Line="807" Column="21" />
+      <File FileName="Shared/Phone/Device/Logic/Send.cs" Line="673" Column="88" />
+      <File FileName="Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs" />
+      <File FileName="Shared/Phone/Device/Logic/DoorLockLogic/LockLogicList.cs" Line="137" Column="37" />
+      <File FileName="Shared/Phone/Device/Logic/LogicCommunalPage.cs" Line="282" Column="114" />
+      <File FileName="Shared/Phone/Device/Logic/Method.cs" Line="850" Column="35" />
+      <File FileName="Shared/Phone/Device/Logic/SoneLogicList.cs" Line="391" Column="51" />
+      <File FileName="Shared/Common/Logic.cs" Line="46" Column="33" />
     </Files>
     <Pads>
       <Pad Id="ProjectPad">
         <State name="__root__">
           <Node name="GateWay" expanded="True">
             <Node name="Shared" expanded="True">
+              <Node name="Common" expanded="True" />
               <Node name="Phone" expanded="True">
                 <Node name="Device" expanded="True">
                   <Node name="Logic" expanded="True">
+                    <Node name="DoorLockLogic" expanded="True" />
                     <Node name="LogicView" expanded="True" />
-                    <Node name="SoneLogicList.cs" selected="True" />
+                    <Node name="SkipView.cs" selected="True" />
                   </Node>
                 </Node>
                 <Node name="UserCenter" expanded="True">
                   <Node name="DoorLock" expanded="True" />
-                </Node>
-                <Node name="ZigBee" expanded="True">
-                  <Node name="Device" expanded="True" />
                 </Node>
               </Node>
             </Node>
diff --git a/ZigbeeApp/.vs/GateWay/xs/sqlite3/storage.ide b/ZigbeeApp/.vs/GateWay/xs/sqlite3/storage.ide
index 097f8d9..4c56cc6 100644
--- a/ZigbeeApp/.vs/GateWay/xs/sqlite3/storage.ide
+++ b/ZigbeeApp/.vs/GateWay/xs/sqlite3/storage.ide
Binary files differ
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockLogicList.cs b/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockLogicList.cs
index 742b6f6..a2e99ab 100644
--- a/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockLogicList.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockLogicList.cs
@@ -83,9 +83,6 @@
         public async void Read()
         {
 
-
-
-
             CommonPage.Loading.Start();
             if (!BoolExist())
             {
@@ -110,14 +107,19 @@
                                 //鏌ユ壘鏄惁鏄偅涓棬閿侊紱
                                 //濡傛灉涓嶆槸璇ラ棬閿佽仈鍔ㄤ簨浠朵笉鏄剧ず鍑烘潵;
                                 yes = false;
-                                break;
+
                             }
-                            if (logic.Accounts[a]["Account"].ToString() == Config.Instance.Guid)
+                            else
                             {
-                                //鏌ユ壘鑷繁璐﹀彿涓嬬殑鍒涘缓鑱斿姩浜嬩欢锛�
                                 yes = true;
-                                break;
+
                             }
+                            //if (logic.Accounts[a]["Account"].ToString() == Config.Instance.Guid)
+                            //{
+                            //    //鏌ユ壘鑷繁璐﹀彿涓嬬殑鍒涘缓鑱斿姩浜嬩欢锛�
+                            //    yes = true;
+                            //    break;
+                            //}
                         }
                         if (yes)
                         {
@@ -326,14 +328,17 @@
                     //鏌ユ壘鏄惁鏄偅涓棬閿侊紱
                     //濡傛灉涓嶆槸璇ラ棬閿佽仈鍔ㄤ簨浠朵笉鏄剧ず鍑烘潵;
                     yes = false;
-                    break;
                 }
-                if (logic.Accounts[j]["Account"].ToString() == Config.Instance.Guid)
+                else
                 {
-                    //鏌ユ壘鑷繁璐﹀彿涓嬬殑鍒涘缓鑱斿姩浜嬩欢锛�
                     yes = true;
-                    break;
                 }
+                //if (logic.Accounts[j]["Account"].ToString() == Config.Instance.Guid)
+                //{
+                //    //鏌ユ壘鑷繁璐﹀彿涓嬬殑鍒涘缓鑱斿姩浜嬩欢锛�
+                //    yes = true;
+                //    break;
+                //}
 
             }
             return yes;
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/SkipView.cs b/ZigbeeApp/Shared/Phone/Device/Logic/SkipView.cs
index b90af36..431837d 100644
--- a/ZigbeeApp/Shared/Phone/Device/Logic/SkipView.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/SkipView.cs
@@ -724,6 +724,10 @@
             actionsInfo.Add("Epoint", common.DeviceEpoint);
             actionsInfo.Add("PassData", "055704010113");//榛樿闂ㄩ攣甯稿叧
 
+            Dictionary<string, string> accounts = new Dictionary<string, string>();
+            accounts.Add("DeviceAddr", common.DeviceAddr.ToString());//鐢ㄤ簬鍒ゆ柇璇嗗埆鏄摢涓棬閿�;
+            accounts.Add("Epoint", common.DeviceEpoint.ToString());
+
             Common.Logic currentLogic = new Common.Logic();
             currentLogic.IsEnable = 1;//榛樿涓哄紑
             currentLogic.TimeAttribute.Repeat = 0;//鎵ц涓�娆�
@@ -731,6 +735,7 @@
             currentLogic.LogicName = Language.StringByID(R.MyInternationalizationString.openmode);
             currentLogic.Conditions.Add(timeConditionsInfo);
             currentLogic.Actions.Add(actionsInfo);
+            currentLogic.Accounts.Add(accounts);
             var logicIfon = await Send.AddModifyLogic(currentLogic);
             if (logicIfon != null && logicIfon.LogicId != 0)
             {
@@ -754,14 +759,32 @@
             if (Idlist.Count != 0)
             {
                 //榛樿鍙栫涓�涓�昏緫ID
-                exist = Idlist[0];
-
+                var id = Idlist[0];
+                if (valueInt != 3)
+                {
+                    exist = id;
+                }
+                else
+                {
+                    var logic = await Send.GetLogic(id, 3);
+                    if (logic != null)
+                    {
+                        if (ExistLogic(logic))
+                        {
+                            exist = id;
+                        }
+                        else
+                        {
+                            exist = 0;
+                        }
+                    }
+                }
             }
             return exist;
         }
-    
+
         ///<summary>
-        ///鑾峰彇閫昏緫淇℃伅
+        ///鑾峰彇闂ㄩ攣閫昏緫淇℃伅
         /// 杩斿洖鍊硷細null涓嶅瓨鍦�;鍏跺畠鍊奸兘瀛樺湪;
         /// </summary>
         public static async System.Threading.Tasks.Task<Common.Logic> GetLogicIfon()
@@ -773,12 +796,16 @@
                 //榛樿鍙栫涓�涓�昏緫ID(鏃舵晥鎬у彧鏈変竴鏉¢�昏緫)
                 int exist = Idlist[0];
                 logic = await Send.GetLogic(exist, 3);
+                if (!ExistLogic(logic))
+                {
+                    logic = null;
+                }
             }
             return logic;
         }
 
         ///<summary>
-        ///鍒犻櫎鎵�鏈夋椂鏁堟�ц嚜鍔ㄥ寲
+        ///鍒犻櫎璇ラ棬閿佹墍鏈夋椂鏁堟�ц嚜鍔ㄥ寲
         /// 杩斿洖鍊硷細true鎴愬姛;false澶辫触;
         /// </summary>
         public static async System.Threading.Tasks.Task<bool> GetLogicAll()
@@ -792,15 +819,44 @@
                 for (int i = 0; i < Idlist.Count; i++)
                 {
                     int id = Idlist[i];
-                    //鏈潵鍙湁涓�鏉℃椂鏁堟�ц嚜鍔ㄥ寲锛�
-                    //闃叉鐗规畩鎯呭喌,鎵惧埌灏卞垹闄ゆ帀;
-                    Send.DelLogic(id);
+                    var logic = await Send.GetLogic(id, 3);
+                    if (logic != null)
+                    {
+                        if (ExistLogic(logic))
+                        {
+                            //鏈潵鍙湁涓�鏉℃椂鏁堟�ц嚜鍔ㄥ寲锛�
+                            //闃叉鐗规畩鎯呭喌,鎵惧埌灏卞垹闄ゆ帀;
+                            Send.DelLogic(id);
+                        }
+                    }
                 }
             }
             return _if;
         }
 
-    
+        /// <summary>
+        /// 鏌ユ壘杩欎竴鏉¤嚜鍔ㄥ寲鏄惁灞炰簬璇ラ棬閿�
+        /// </summary>
+        /// <returns></returns>
+        public static bool ExistLogic(Common.Logic logic)
+        {
+            bool yes = false;
+            for (int j = 0; j < logic.Accounts.Count; j++)
+            {
+                //Option4鏄澶噈ac锛汷ption2鏄澶囩鍙o紱
+                if (logic.Accounts[j]["Option4"].ToString() != Send.CurrentDoorLock.DeviceAddr && logic.Accounts[j]["Option2"].ToString() != Send.CurrentDoorLock.DeviceEpoint.ToString())
+                {
+                    //鏌ユ壘鏄惁鏄偅涓棬閿侊紱
+                    //濡傛灉涓嶆槸璇ラ棬閿佽仈鍔ㄤ簨浠朵笉鏄剧ず鍑烘潵;
+                    yes = false;
+                }
+                else
+                {
+                    yes = true;
+                }
+            }
+            return yes;
+        }
 
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs b/ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs
index 1665402..ebef314 100644
--- a/ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs
@@ -64,7 +64,7 @@
             {
                 //杩涙潵鏇存柊涓�娆�
                 //鏌ユ壘鏄惁瀛樺湪鏃舵晥鎬ц嚜鍔ㄥ寲锛涙湁鐨勮瘽灏辫繑鍥炶嚜鍔ㄥ寲瀵硅薄;
-                var logic = await SkipView.GetLogicIfon();
+              var  logic = await SkipView.GetLogicIfon();
                 if (logic != null)
                 {
                     try
@@ -264,6 +264,7 @@
                         {
                             if (logicId != 0)
                             {
+
                                 ///鏈夊彲鑳藉彧鏈夊父寮�妯″紡锛屾病鏈夋椂鏁堟�ц嚜鍔ㄥ寲
                                 Send.DelLogic(logicId);
                             }
@@ -403,6 +404,8 @@
                                          timeValue = int.Parse(str);
                                          Send.CurrentDoorLock.IsDoorLockNormallyMode = true;
                                          ModeView();
+                                         ///娣诲姞APP寮�鍚父寮�妯″紡鐨勫巻鍙茶褰�
+                                         UserCenter.HdlDeviceDoorLockLogic.Current.AddDoorHistoryLog(Send.CurrentDoorLock,9001,string.Empty);
                                      }
 
 

--
Gitblit v1.8.0