From d5b9ff8bf8cc36f5b13c46b66682f5988d3a6f36 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期五, 15 五月 2020 11:36:11 +0800
Subject: [PATCH] 2020-05-15-1

---
 ZigbeeApp/Shared/Phone/Device/Logic/Method.cs |  166 +++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 113 insertions(+), 53 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/Method.cs b/ZigbeeApp/Shared/Phone/Device/Logic/Method.cs
index ad57cad..e4fff88 100644
--- a/ZigbeeApp/Shared/Phone/Device/Logic/Method.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/Method.cs
@@ -83,15 +83,15 @@
                 {
                     //杩囨护鎺変笉鏀寔鐨勮澶�
                     continue;
-                }
-                if (device.Type == DeviceType.DoorLock)
-                {
-                    var myInfo = LocalDevice.Current.GetMyDeviceEnumInfo(new List<CommonDevice>() { device });
-                    if (myInfo.ConcreteType == DeviceConcreteType.IntelligentLocks_Sone)
-                    {
-                        //鏆傛椂涓嶆敮鎸丼-one闂ㄩ攣;
-                        //杩囨护鎺変笉鏀寔S-one闂ㄩ攣璁惧;
-                        continue;
+                }
+                if (device.Type == DeviceType.DoorLock)
+                {
+                    var myInfo = LocalDevice.Current.GetMyDeviceEnumInfo(new List<CommonDevice>() { device });
+                    if (myInfo.ConcreteType == DeviceConcreteType.IntelligentLocks_Sone)
+                    {
+                        //鏆傛椂涓嶆敮鎸丼-one闂ㄩ攣;
+                        //杩囨护鎺変笉鏀寔S-one闂ㄩ攣璁惧;
+                        continue;
                     }
                 }
                 deviceUIlist.Add(device);
@@ -702,7 +702,11 @@
                     Common.Logic.CurrentLogic.LogicIsCustomPushText = 0;
                     pushview.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor;
                 }
-                Send.Zj(LogicView.IfString.Tag, Common.Logic.CurrentLogic);
+                if (!Config.Instance.Home.IsVirtually)
+                {
+                    Send.Zj(LogicView.IfString.Tag, Common.Logic.CurrentLogic);
+
+                }
             };
 
             if (Common.Logic.CurrentLogic.LogicIsCustomPushText == 0)
@@ -759,38 +763,94 @@
             bool succeed = false;
             //鍒ゆ柇鏄柊娣诲姞閫昏緫(榛樿0)杩樻槸淇敼閫昏緫
             CommonPage.Loading.Start();
-            if (CurrentLogic.LogicId == 0)
-            {
-                //鍙戦�佹坊鍔犻�昏緫鍛戒护
-                var logicifon = await Send.AddModifyLogic(CurrentLogic);
-                if (logicifon != null && logicifon.LogicId != 0)
-                {
-                    succeed = true;
-                    CurrentLogic.LogicId = logicifon.LogicId;
-                    if (LogicView.IfString._LockLogic == if_logic)
-                    {
-                        //闂ㄩ攣鑱斿姩浜嬩欢閫昏緫鍒楄〃
-                        Common.Logic.LockLogicList.Add(CurrentLogic);
-                    }
-                    else
-                    {
-                        //鑷姩鍖栭�昏緫鍒楄〃
-                        Common.Logic.LogicList.Add(CurrentLogic);
 
-                    }
-                    if (tag)
-                    {
-                        Send.Zj(tag, CurrentLogic);
-                    }
+            if (Config.Instance.Home.IsVirtually)
+            {
+                if (Common.Logic.LogicList.Count == 0)
+                {
+                    CurrentLogic.LogicId = 1;
+                    Common.Logic.LogicList.Add(CurrentLogic);
                 }
+
+                if (CurrentLogic.LogicId == 0)
+                {
+                    bool d = false;
+                    for (int i = 1; i < 50; i++)
+                    {
+                       
+                        for (int j = 0; j < Common.Logic.LogicList.Count; j++)
+                        {
+                            if (i != Common.Logic.LogicList[j].LogicId)
+                            {
+                                CurrentLogic.LogicId = i;
+                                Common.Logic.LogicList.Add(CurrentLogic);
+                                d = true;
+                                break;
+                            }
+                        }
+                        if (d)
+                        {
+                            break;
+                        }
+                    }
+
+                }
+                else
+                {
+                    for (int j = 0; j < Common.Logic.LogicList.Count; j++)
+                    {
+                        if (CurrentLogic.LogicId == Common.Logic.LogicList[j].LogicId)
+                        {
+                            Common.Logic.LogicList.RemoveAt(j);
+                            Common.Logic.LogicList.Insert(j,CurrentLogic);
+                            break;
+                        }
+                    }
+
+                }
+
+                //鑷姩鍖栭�昏緫鍒楄〃
             }
             else
             {
-                //鍙戦�佷慨鏀归�昏緫鍛戒护锛�
-                //淇敼鍛戒护涓嶉渶瑕佺瓑寰呭洖澶嶏紱
-                Send.AddModifyLogic(CurrentLogic);
-                //缂栬緫榛樿鎴愬姛锛堜笉鑰冭檻缃戠粶鎯呭喌锛夛紱
-                succeed = true;
+                if (CurrentLogic.LogicId == 0)
+                {
+                    //鍙戦�佹坊鍔犻�昏緫鍛戒护
+                    var logicifon = await Send.AddModifyLogic(CurrentLogic);
+                    if (logicifon != null && logicifon.LogicId != 0)
+                    {
+                        succeed = true;
+                        CurrentLogic.LogicId = logicifon.LogicId;
+                        if (LogicView.IfString._Logic == if_logic || LogicView.IfString._SoneLogic == if_logic)
+                        {
+                            //鑷姩鍖栭�昏緫鍒楄〃
+                            Common.Logic.LogicList.Add(CurrentLogic);
+                        }
+                        if (LogicView.IfString._LockLogic == if_logic)
+                        {
+                            //闂ㄩ攣鑱斿姩浜嬩欢閫昏緫鍒楄〃
+                            Common.Logic.LockLogicList.Add(CurrentLogic);
+                        }
+                        if (LogicView.IfString._SoneLogic == if_logic)
+                        {
+                            //Sone闂ㄩ攣鑱斿姩浜嬩欢閫昏緫鍒楄〃
+                            Common.Logic.SoneLogicList.Add(CurrentLogic);
+
+                        }
+                        if (tag)
+                        {
+                            Send.Zj(tag, CurrentLogic);
+                        }
+                    }
+                }
+                else
+                {
+                    //鍙戦�佷慨鏀归�昏緫鍛戒护锛�
+                    //淇敼鍛戒护涓嶉渶瑕佺瓑寰呭洖澶嶏紱
+                    Send.AddModifyLogic(CurrentLogic);
+                    //缂栬緫榛樿鎴愬姛锛堜笉鑰冭檻缃戠粶鎯呭喌锛夛紱
+                    succeed = true;
+                }
             }
             CommonPage.Loading.Hide();
 
@@ -802,34 +862,34 @@
                 //TipView("娣诲姞鑷姩鍖栧け璐�");
                 //return;
             }
-          
 
+            UserView.HomePage.Instance.RemoveViewByTag("Logic");//绉婚櫎鎵�鏈夋爣璁癓ogic鐣岄潰
             if (LogicView.IfString._Logic == if_logic)
             {
-                UserView.HomePage.Instance.RemoveViewByTag("Logic");
-                if (CurrentLogic.LogicType == 0)
-                {
-                    //鍙埛鏂板垎绫讳笂涓嬫粦鍔╲iew锛�
-                    Phone.Category.CategoryMainForm.instance?.RefreshBodyView();
-                    // Category.Category.instance?.RefreshBodyView();
-                }
-                else if (CurrentLogic.LogicType == 2)
-                {
-                    //鍒锋柊鏁翠釜鍒嗙被锛�
-                    //闂ㄩ攣甯稿紑妯″紡鐗规畩;
-                    UserView.UserPage.Instance.ShowCategoryAutoListForm();
-
-                }
+                //鍙埛鏂板垎绫�-鑷姩鍖栦笂涓嬫粦鍔╲iew锛�
+                Phone.Category.CategoryMainForm.instance?.RefreshBodyView();
+                // Category.Category.instance?.RefreshBodyView();
             }
             else if (LogicView.IfString._LockLogic == if_logic)
             {
-                UserView.HomePage.Instance.RemoveViewByTag("Logic");//绉婚櫎鎵�鏈夋爣璁癓ogic鐣岄潰
+                //璺冲埌闂ㄩ攣鑱斿姩浜嬩欢鍒楄〃鐣岄潰
                 UserView.HomePage.Instance.RemoveViewByTag("LockListView");//绉婚櫎鎵�鏈夋爣璁癓ockListView鐣岄潰
                 var doorLockLogicList = new DoorLockLogic.LockLogicList();
                 UserView.HomePage.Instance.AddChidren(doorLockLogicList);
                 UserView.HomePage.Instance.PageIndex += 1;
                 doorLockLogicList.Show();
             }
+            else if (LogicView.IfString._SoneLogic == if_logic)
+            {
+                //璺冲埌Sone闂ㄩ攣鑱斿姩浜嬩欢鍒楄〃鐣岄潰
+                //UserView.HomePage.Instance.RemoveViewByTag("SoneLogic");//绉婚櫎鎵�鏈夋爣璁癓ockListView鐣岄潰
+                //var soneLogicList = new SoneLogicList();
+                //UserView.HomePage.Instance.AddChidren(soneLogicList);
+                //UserView.HomePage.Instance.PageIndex += 1;
+                //soneLogicList.Show();
+
+                SoneLogicList.soneLogicList?.RefreshView();
+            }
 
         }
         /// <summary>

--
Gitblit v1.8.0