From 309f878169da2f0482dd40b81a84b606ed29cedf Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期四, 07 五月 2020 11:25:05 +0800
Subject: [PATCH] 上传

---
 ZigbeeApp/Shared/Phone/Device/Logic/Method.cs |  121 +++++++++++++++++++++++++++++-----------
 1 files changed, 88 insertions(+), 33 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/Method.cs b/ZigbeeApp/Shared/Phone/Device/Logic/Method.cs
index 5df1e25..cb77e0c 100755
--- a/ZigbeeApp/Shared/Phone/Device/Logic/Method.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/Method.cs
@@ -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,43 +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._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);
-                    }
+            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();
 

--
Gitblit v1.8.0