From 6fa9d69da922c8049f5acfcbb9ce9fd26811024c Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期四, 16 四月 2020 17:10:57 +0800
Subject: [PATCH] 请合并代码

---
 ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/AddCondition.cs |  350 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 350 insertions(+), 0 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/AddCondition.cs b/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/AddCondition.cs
new file mode 100755
index 0000000..79ba027
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/AddCondition.cs
@@ -0,0 +1,350 @@
+锘縰sing System;
+using System.Collections.Generic;
+using Shared;
+using Shared.Common;
+using Shared.R;
+namespace Shared.Phone.Device.Logic.DoorLockLogic
+{
+    public class AddCondition : FrameLayout
+    {
+        public AddCondition()
+        {
+            Tag = "Logic";
+        }
+        Button selectedIcon = new Button();
+        VerticalRefreshLayout middle;
+        public int conditionsIndex = -1;
+
+        public void Show()
+        {
+
+            #region  鐣岄潰甯冨眬浠g爜 
+            TopView view = new TopView();
+            this.AddChidren(view.TopRowView());
+            view.toptitleNameBtn.TextID = MyInternationalizationString.userlist;
+            view.clickBtn.MouseDownEventHandler += (sender, e) => { RemoveFromParent(); };
+            middle = new VerticalRefreshLayout
+            {
+                Y = view.topRowLayout.Bottom,
+                Height = Application.GetRealHeight(Method.H - 184),
+                BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
+            };
+            this.AddChidren(middle);
+            #endregion
+            middle.BeginHeaderRefreshingAction += () =>
+            {
+                //閲嶆柊鍒锋柊logic鍒楄〃
+                string macport = Send.CurrentDoorLock.DeviceAddr + "_" + Send.CurrentDoorLock.DeviceEpoint.ToString();
+                for (int i = 0; i < Send.LockList.Count; i++)
+                {
+                    if (Send.LockList[i].DoorLockMacPort == macport)
+                    {
+                        ///浠庡垪琛ㄧЩ闄ゅ綋鍓嶉棬閿佸叏閮ㄧ殑鏃ф暟鎹紱
+                        Send.LockList.Remove(Send.LockList[i]);
+                        i--;
+                    }
+                }
+                Read();
+                //鍏抽棴鍒锋柊View锛�
+                middle.EndHeaderRefreshing();
+            };
+            Read();
+
+        }
+        /// <summary>
+        /// 璇诲彇褰撳墠闂ㄩ攣鐨勪簯绔暟鎹紱
+        /// </summary>
+        public void Read()
+        {
+            bool d = false;
+            string macport = Send.CurrentDoorLock.DeviceAddr + "_" + Send.CurrentDoorLock.DeviceEpoint.ToString();
+            for (int i = 0; i < Send.LockList.Count; i++)
+            {
+                if (Send.LockList[i].DoorLockMacPort == macport)
+                {
+                    ///宸茬粡瀛樺湪璇ラ棬閿佷俊鎭�
+                    d = true;
+                    break;
+                }
+            }
+            CommonPage.Loading.Start();
+            middle.RemoveAll();
+            System.Threading.Tasks.Task.Run(async () =>
+            {
+                try
+                {
+                    if (!d)
+                    {
+                        var allMemberslist = await Send.AllMembers(macport);
+                        Send.LockList.AddRange(allMemberslist);
+                    }
+                }
+                catch { }
+                finally
+                {
+                    Application.RunOnMainThread(() =>
+                    {
+                        CommonPage.Loading.Hide();
+                        UserAllView(macport);
+                    });
+                }
+            });
+        }
+        /// <summary>
+        /// 鏄剧ず鎵�鏈夌敤鎴�
+        /// </summary>
+        public void UserAllView(string macport)
+        {
+            for (int i = 0; i < Send.LockList.Count; i++)
+            {
+                var user = Send.LockList[i];
+                if (user.DoorLockMacPort != macport)
+                {
+                    continue;
+                }
+
+                FunView userView = new FunView();
+                userView.iconBtn.Visible = false;
+                userView.funnameBtn.X = Application.GetRealWidth(81);
+                userView.funnameBtn.Text = user.UserName;
+                userView.funnextBtn.X = Application.GetRealWidth(1080 - 81 - 58);
+                userView.lineBtn.X = Application.GetRealWidth(81);
+                userView.lineBtn.Width = Application.GetRealWidth(1080 - 81 - 58);
+                if (Send.LockList.Count - 1 == i)
+                {
+                    userView.funFrameLayout.Height = Application.GetRealHeight(160 + 20);//鏈�鍚庝竴琛屽鍔�20楂樺害;
+                    userView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor;
+                }
+                middle.AddChidren(userView.FunFrameView());
+                userView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
+                {
+                    SelectedUserID(user);
+                };
+
+            }
+        }
+        /// <summary>
+        /// 閫夋嫨鏌愪釜鐢ㄦ埛
+        /// </summary>
+        /// <param name="user">瑙﹀彂婧愬垪琛�</param>
+        public void SelectedUserID(Send.MembershipIfon user)
+        {
+
+            //鍏冪礌瓒呭嚭9涓氨鐢ㄤ笂涓嬫粦鍔ㄦ帶浠�;
+            VerticalScrolViewLayout vV = null;
+            int count = user.UserIdMode.Count;
+            if (count > 9)
+            {
+                ///鍏冪礌瓒呭嚭9涓�;
+                count = 6;
+                //鍏冪礌瓒呭嚭9涓氨鐢ㄤ笂涓嬫粦鍔ㄦ帶浠�;
+                vV = new VerticalScrolViewLayout
+                {
+                    Y = Application.GetRealHeight(140 + 20),
+                    Height = Application.GetRealHeight(160 * count),
+                };
+                //娓呴櫎涔嬪墠鐨勬帶浠�;
+                vV.RemoveAll();
+            }
+
+            #region  -------鍙栨秷   瀹屾垚
+            var flMain = new FrameLayout { BackgroundColor = ZigbeeColor.Current.LogicTranslucentColor };
+            this.AddChidren(flMain);
+            CompleteView completeView = new CompleteView();
+            flMain.AddChidren(completeView.Show(count));
+            completeView.Btntitle.Text = user.UserName;
+            EventHandler<MouseEventArgs> clickcancel = (sender, e) =>
+            {
+                UserView.HomePage.Instance.ScrollEnabled = true;
+                flMain.RemoveFromParent();
+            };
+            flMain.MouseUpEventHandler += clickcancel;
+            completeView.Btncancel.MouseUpEventHandler += clickcancel;
+            #endregion
+
+            ///瀹氫袱涓彉閲忚褰曚箣鍓嶇殑鍙�硷紱
+            string userId = "";
+            string openMode = "";
+            string accountName = "";
+            string SelectedDeviceStatuscondition = "";
+
+            for (int i = 0; i < user.UserIdMode.Count; i++)
+            {
+                var userifon = user.UserIdMode[i];
+
+                mFunView lockView = new mFunView();
+                if (user.UserIdMode.Count > 9)
+                {
+                    //鍏冪礌瓒呭嚭9涓氨鐢ㄤ笂涓嬫粦鍔ㄦ帶浠�;
+                    completeView.Show(count).AddChidren(vV);
+                    vV.AddChidren(lockView.Show());
+                }
+                else
+                {
+                    lockView.frameLayout.Y = Application.GetRealHeight(140 + 20 + 160 * i);
+                    completeView.Show(count).AddChidren(lockView.Show());
+                }
+                lockView.titleBtn.Text = userifon.ModeName;
+
+                if ((user.UserIdMode.Count - 1) == i)
+                {
+                    lockView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
+                }
+                lockView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
+                {
+                    SelectedDeviceStatuscondition = "DoorLock";
+                    selectedIcon.Visible = false;
+                    selectedIcon = lockView.selectedIconBtn;
+                    lockView.selectedIconBtn.Visible = true;
+                    userId = userifon.UserId;
+                    openMode = userifon.OpenMode.ToString();
+                    accountName = completeView.Btntitle.Text + lockView.titleBtn.Text;
+                };
+
+
+                if (string.IsNullOrEmpty(lockView.titleBtn.Text))
+                {
+                    string strname = "";
+                    switch (userifon.OpenMode)
+                    {
+                        case 0:
+                            {
+                                strname = Language.StringByID(MyInternationalizationString.lockpassword);
+                            }
+                            break;
+                        case 3:
+                            {
+                                strname = Language.StringByID(MyInternationalizationString.ic);
+                            }
+                            break;
+                        case 15:
+                            {
+                                strname = Language.StringByID(MyInternationalizationString.fingerprint);
+                            }
+                            break;
+                    }
+                    lockView.titleBtn.Text = userifon.UserId + strname;
+                }
+
+                if (conditionsIndex != -1)
+                {
+
+                    ///鏄剧ず涔嬪墠鐨勭姸鎬�
+                    if (conditionsIndex != -1)
+                    {
+                        var s = Common.Logic.CurrentLogic.Conditions[conditionsIndex];
+                        if (s["AttriButeId"] == userifon.OpenMode.ToString() && s["AttriButeData2"] == userifon.UserId)
+                        {
+                            selectedIcon.Visible = false;
+                            selectedIcon = lockView.selectedIconBtn;
+                            lockView.selectedIconBtn.Visible = true;
+                        }
+
+                    }
+
+                }
+
+            }
+
+
+            completeView.Btncomplete.MouseUpEventHandler += (sender, e) =>
+            {
+                var lockConditionsInfo = new Dictionary<string, string>();
+                lockConditionsInfo.Add("Type", "1");
+                lockConditionsInfo.Add("IsValid", "1");
+                lockConditionsInfo.Add("MacAddr", Send.CurrentDoorLock.DeviceAddr);
+                lockConditionsInfo.Add("Epoint", Send.CurrentDoorLock.DeviceEpoint.ToString());
+                lockConditionsInfo.Add("Cluster_ID", "64529");
+                lockConditionsInfo.Add("AttriButeId", openMode);
+                lockConditionsInfo.Add("AttriButeData2", userId);
+                lockConditionsInfo.Add("AttriButeData1", "2");
+                lockConditionsInfo.Add("Range", "0");
+                var accounts = new Dictionary<string, string>();
+                accounts.Add("Type", "1");
+                accounts.Add("Account", Config.Instance.Guid);
+                accounts.Add("AccountName",accountName);
+                accounts.Add("UserId", userId);
+                if (SelectedDeviceStatuscondition != "")
+                {
+                    if (conditionsIndex == -1)
+                    {
+                        bool addCondition = false;
+                        bool addAccount = false;
+                        for (int i = 0; i < Common.Logic.CurrentLogic.Conditions.Count; i++)
+                        {
+                            if (Common.Logic.CurrentLogic.Conditions[i]["Type"] == "1")
+                            {
+                                if ((Common.Logic.CurrentLogic.Conditions[i]["MacAddr"] == Send.CurrentDoorLock.DeviceAddr) && (Common.Logic.CurrentLogic.Conditions[i]["Epoint"] == Send.CurrentDoorLock.DeviceEpoint.ToString()))
+                                {
+                                    if (Common.Logic.CurrentLogic.Conditions[i]["AttriButeId"] == lockConditionsInfo["AttriButeId"] && Common.Logic.CurrentLogic.Conditions[i]["AttriButeData2"] == lockConditionsInfo["AttriButeData2"])
+                                    {
+                                        addCondition = true;
+                                        break;
+                                    }
+                                }
+                            }
+                        }
+
+                        for (int i = 0; i < Common.Logic.CurrentLogic.Accounts.Count; i++)
+                        {
+                            if (Common.Logic.CurrentLogic.Accounts[i]["Type"] == "1")
+                            {
+                                if (Common.Logic.CurrentLogic.Accounts[i]["UserId"] == userId)
+                                {
+                                    addAccount = true;
+                                    break;
+                                }
+                            }
+                        }
+                        if (!addCondition)
+                        {//娌℃湁瀛樺湪鏁版嵁鏂板姞
+                            Common.Logic.CurrentLogic.Conditions.Add(lockConditionsInfo);
+                        }
+                        if (!addAccount)
+                        {//娌℃湁瀛樺湪鏁版嵁鏂板姞
+                            Common.Logic.CurrentLogic.Accounts.Add(accounts);
+                        }
+                    }
+                    else
+                    {
+                        ///鎵惧嚭涔嬪墠鐨勬棫鏁版嵁绉婚櫎鎺夛紝鍐嶉噸鏂版坊鍔犳柊鏁版嵁锛�
+                        string accountuserId = Common.Logic.CurrentLogic.Conditions[conditionsIndex]["AttriButeData2"];
+                        Common.Logic.CurrentLogic.Conditions.RemoveAt(conditionsIndex);
+                        Common.Logic.CurrentLogic.Conditions.Insert(conditionsIndex, lockConditionsInfo);
+                        for (int i = 0; i < Common.Logic.CurrentLogic.Accounts.Count; i++)
+                        {
+                            if (Common.Logic.CurrentLogic.Accounts[i]["Type"] == "1")
+                            {
+                                ///鎵惧嚭涔嬪墠鐨勬棫鏁版嵁绉婚櫎鎺夛紝鍐嶉噸鏂版坊鍔犳柊鏁版嵁锛�
+                                if (Common.Logic.CurrentLogic.Accounts[i]["UserId"] == accountuserId)
+                                {
+                                    Common.Logic.CurrentLogic.Accounts.RemoveAt(i);
+                                    Common.Logic.CurrentLogic.Accounts.Insert(i, accounts);
+                                    break;
+                                }
+                            }
+                        }
+
+                    }
+
+                }
+                else
+                {
+                    if (conditionsIndex == -1)
+                    {
+                        var alert = new UserCenter.ShowMsgControl(UserCenter.ShowMsgType.Normal,
+                   Language.StringByID(MyInternationalizationString.usertip),
+                   Language.StringByID(MyInternationalizationString.confrim));
+                        alert.Show();
+                        return;
+                    }
+                }
+                var lockLogicCommunalPage = new LockLogicCommunalPage();
+                UserView.HomePage.Instance.AddChidren(lockLogicCommunalPage);
+                UserView.HomePage.Instance.PageIndex += 1;
+                lockLogicCommunalPage.Show(() => { });
+            };
+        }
+       
+    }
+}

--
Gitblit v1.8.0