From f1c3921b08bb22ac6f5db22d620e01d7e8e5c49f Mon Sep 17 00:00:00 2001
From: WJC <wjc@hdlchina.com.cn>
Date: 星期一, 30 十二月 2019 13:32:33 +0800
Subject: [PATCH] 2019-12-30-1

---
 ZigbeeApp/Shared/Phone/Device/Logic/MemberList.cs |  621 +++++++++++++++++++++++++++++++-------------------------
 1 files changed, 342 insertions(+), 279 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/MemberList.cs b/ZigbeeApp/Shared/Phone/Device/Logic/MemberList.cs
index c5f558d..a322a5f 100644
--- a/ZigbeeApp/Shared/Phone/Device/Logic/MemberList.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/MemberList.cs
@@ -14,25 +14,14 @@
             Tag = "Logic";
         }
         Button selectedIcon = new Button();
-        public static Action action;
-        public static bool edit=false;
-        Dictionary<string, string> deviceConditionsInfo = new Dictionary<string, string>();
-        Dictionary<string, string> userdictionary = new Dictionary<string, string>();
-
-        public async void Show(CommonDevice common, Dictionary<string, string> editdeviceConditionsInfo=null)
+        public static bool edit = false;
+        VerticalRefreshLayout middle;
+        CommonDevice common;
+        Dictionary<string, string> editdeviceConditionsInfo;
+        public void Show(CommonDevice commondevice, Dictionary<string, string> editdeviceConditions = null)
         {
-         
-            if (!edit)
-            {
-                deviceConditionsInfo.Add("Type", "1");
-                deviceConditionsInfo.Add("IsValid", "1");
-                deviceConditionsInfo.Add("MacAddr", common.DeviceAddr);
-                deviceConditionsInfo.Add("Epoint", common.DeviceEpoint.ToString());
-                deviceConditionsInfo.Add("Cluster_ID", "64529");
-                deviceConditionsInfo.Add("AttriButeData1", "2");
-                deviceConditionsInfo.Add("Range", "0");
-                editdeviceConditionsInfo = deviceConditionsInfo;
-            }
+            common = commondevice;
+            editdeviceConditionsInfo = editdeviceConditions;
             UserView.HomePage.Instance.ScrollEnabled = false;
             this.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor;
             #region  鏈�涓婇潰鐨勫竷灞�浠g爜
@@ -46,7 +35,7 @@
 
             var titleName = new Button
             {
-                TextSize = 16,
+                TextSize = 17,
                 TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                 TextAlignment = TextAlignment.CenterLeft,
                 X = Application.GetRealWidth(176),
@@ -54,6 +43,7 @@
                 Height = Application.GetRealHeight(69),
                 Y = Application.GetRealHeight(92),
                 TextID = MyInternationalizationString.userlist,
+                IsBold = true,
             };
             topRowLayout.AddChidren(titleName);
 
@@ -67,7 +57,6 @@
             clickBtn.MouseDownEventHandler += (sender, e) =>
             {
                 RemoveFromParent();
-                action();
             };
 
             var back = new Button
@@ -86,26 +75,91 @@
             };
             #endregion
 
-            var middle = new VerticalScrolViewLayout
+            middle = new VerticalRefreshLayout
             {
                 Y = topRowLayout.Bottom,
                 Height = Application.GetRealHeight(1920 - 184),
                 BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
             };
             this.AddChidren(middle);
-            if (Send.UserList.Count == 0)
+            middle.BeginHeaderRefreshingAction += () =>
             {
-                var allMemberslist = await Send.AllMembers(common.DeviceAddr);
-                Send.UserList.AddRange(allMemberslist);
-            }
-            foreach (var user in Send.UserList)
-            {
+                //閲嶆柊鍒锋柊logic鍒楄〃
+                string macport = common.DeviceAddr + "_" + common.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()
+        {
 
-                var userFramelayout = new RowLayout
+            bool d = false;
+            string macport = common.DeviceAddr + "_" + common.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();
+                       UserList(macport);
+                   });
+               }
+           });
+        }
+        /// <summary>
+        /// 鎴愬憳鍒楄〃鐨勬柟娉�
+        /// </summary>
+        /// <param name="macport"></param>
+        public void UserList(string macport)
+        {
+            foreach (var user in Send.LockList)
+            {
+                if (user.DoorLockMacPort != macport)
+                {
+                    continue;
+                }
+                var userFramelayout = new FrameLayout
                 {
                     Height = Application.GetRealHeight(160),
                     BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
-                    LineColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
+                    // LineColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
                 };
                 middle.AddChidren(userFramelayout);
 
@@ -122,9 +176,10 @@
 
                 var userBtn = new Button
                 {
-                    Text = user.MembershipName,
+                    Text = user.UserName,
                     TextAlignment = TextAlignment.CenterLeft,
                     TextColor = ZigbeeColor.Current.LogicTextBlackColor,
+                    TextSize = 14,
                 };
                 userRow.AddChidren(userBtn);
 
@@ -140,254 +195,7 @@
 
                 EventHandler<MouseEventArgs> useridclick = (sender, e) =>
                 {
-                    var flMain = new FrameLayout { BackgroundColor = ZigbeeColor.Current.LogicViewBackgroundColor };
-                    this.AddChidren(flMain);
-                    flMain.MouseUpEventHandler += (sender1, e1) =>
-                   {
-                       flMain.RemoveFromParent();
-                   };
-
-                    var lockcolorfra = new FrameLayout
-                    {
-                        Width = Application.GetRealWidth(1080),
-                        Height = Application.GetRealHeight(100),
-                        Y = Application.GetRealHeight(1920 - 100),
-                        BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
-                    };
-                    flMain.AddChidren(lockcolorfra);
-
-                    var lockcolorfra1 = new FrameLayout
-                    {
-
-                        Width = Application.GetRealWidth(1080),
-                        Height = Application.GetRealHeight(530),
-                        Y = Application.GetRealHeight(1920 - 530),
-                        BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
-                        Radius = (uint)Application.GetRealHeight(60),
-                    };
-                    flMain.AddChidren(lockcolorfra1);
-
-                    #region  -------鍙栨秷   瀹屾垚
-                    var lockRow = new RowLayout
-                    {
-                        Height = Application.GetRealHeight(140),
-                        LineColor = ZigbeeColor.Current.LogicRowLayoutLineColor,
-                    };
-                    lockcolorfra1.AddChidren(lockRow);
-                    var Btncancel = new Button
-                    {
-                        TextID = MyInternationalizationString.cancel,
-                        TextColor = ZigbeeColor.Current.LogicBtnCancelColor,
-                        Height = Application.GetRealHeight(140),
-                        Width = Application.GetRealWidth(200),
-                        X = Application.GetRealWidth(80),
-                        TextAlignment = TextAlignment.CenterLeft,
-                    };
-                    lockRow.AddChidren(Btncancel);
-                    Btncancel.MouseUpEventHandler += (sender16, e16) =>
-                    {
-                        flMain.RemoveFromParent();
-                        UserView.HomePage.Instance.ScrollEnabled = true;
-                    };
-
-                    var Btntitle = new Button
-                    {
-                        TextID = MyInternationalizationString.security,
-                        TextColor = ZigbeeColor.Current.LogicBtnTypeColor,
-                        Height = Application.GetRealHeight(140),
-                        Width = Application.GetRealWidth(320),
-                        TextAlignment = TextAlignment.Center,
-                        X = Btncancel.Right + Application.GetRealWidth(100),
-                        TextSize = 16,
-                        Text = user.MembershipName,
-                    };
-                    lockRow.AddChidren(Btntitle);
-                    var Btncomplete = new Button
-                    {
-                        TextID = MyInternationalizationString.complete,
-                        TextColor = ZigbeeColor.Current.LogicBtnCompleteColor,
-                        Height = Application.GetRealHeight(140),
-                        Width = Application.GetRealWidth(200),
-                        TextAlignment = TextAlignment.CenterRight,
-                        X = Btntitle.Right + Application.GetRealWidth(100),
-
-                    };
-                    lockRow.AddChidren(Btncomplete);
-                    #endregion
-
-                    string SelectedDeviceStatuscondition = "";
-                    lockcolorfra1.Y = Application.GetRealHeight(1920 - 140 - (160 * user.UserIdMode.Count) - 20 - 50);
-                    lockcolorfra1.Height = Application.GetRealHeight(140 + (160 * user.UserIdMode.Count) + 20 + 50);
-                    for (int i = 0; i < user.UserIdMode.Count; i++)
-                    {
-                        var userifon = user.UserIdMode[i];
-                        var doorlockfra = new FrameLayout
-                        {
-                            Height = Application.GetRealHeight(160),
-                            Y = lockRow.Bottom + Application.GetRealHeight(20 + 160 * i),
-                        };
-                        lockcolorfra1.AddChidren(doorlockfra);
-
-                        var doorlockRow = new RowLayout
-                        {
-                            Y = Application.GetRealHeight(30),
-                            Width = Application.GetRealWidth(920),
-                            Height = Application.GetRealHeight(130),
-                            X = Application.GetRealWidth(80),
-                            LineColor = ZigbeeColor.Current.LogicRowLayoutLineColor,
-                        };
-                        doorlockfra.AddChidren(doorlockRow);
-
-                        var doorlockBtn = new Button
-                        {
-                            Width = Application.GetRealWidth(600),
-                            TextAlignment = TextAlignment.CenterLeft,
-                            TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor,
-                        };
-                        doorlockRow.AddChidren(doorlockBtn);
-                        //(1鎸夐敭/3鍗�/15鎸囩汗)
-                        switch (userifon.OpenMode.ToString())
-                        {
-                            case "0":
-                                {
-                                    doorlockBtn.Text = Language.StringByID(MyInternationalizationString.lockpassword);
-                                }
-                                break;
-                            case "3":
-                                {
-                                    doorlockBtn.Text = Language.StringByID(MyInternationalizationString.ic);
-                                }
-                                break;
-                            case "15":
-                                {
-                                    doorlockBtn.Text = Language.StringByID(MyInternationalizationString.fingerprint);
-                                }
-                                break;
-                        }
-                        var doorlockSelected = new Button
-                        {
-                            X = Application.GetRealWidth(860),
-                            Width = Application.GetMinRealAverage(60),
-                            Height = Application.GetMinRealAverage(60),
-                            UnSelectedImagePath = "ZigeeLogic/selected.png",
-                            Visible = false,
-                            Gravity = Gravity.CenterVertical,
-
-                        };
-                        doorlockRow.AddChidren(doorlockSelected);
-                        if ((user.UserIdMode.Count - 1) == i)
-                        {
-                            doorlockRow.LineColor = ZigbeeColor.Current.LogicBackgroundColor;
-                        }
-                        EventHandler<MouseEventArgs> doorlockclick = (sender2, e2) =>
-                        {
-                            SelectedDeviceStatuscondition = "DoorLock";
-                            selectedIcon.Visible = false;
-                            selectedIcon = doorlockSelected;
-                            doorlockSelected.Visible = true;
-                            //doorlockBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
-                            if (deviceConditionsInfo.ContainsKey("AttriButeId"))
-                            {
-                                deviceConditionsInfo.Remove("AttriButeId");
-                            }
-                            if (deviceConditionsInfo.ContainsKey("AttriButeData2"))
-                            {
-                                deviceConditionsInfo.Remove("AttriButeData2");
-                            }
-                            deviceConditionsInfo.Add("AttriButeId", userifon.OpenMode.ToString());
-                            deviceConditionsInfo.Add("AttriButeData2", userifon.UserId);
-
-                            if (userdictionary.ContainsKey("Account"))
-                            {
-                                userdictionary.Remove("Account");
-                            }
-                            if (userdictionary.ContainsKey("Type"))
-                            {
-                                userdictionary.Remove("Type");
-                            }
-                            if (userdictionary.ContainsKey("UserId"))
-                            {
-                                userdictionary.Remove("UserId");
-                            }
-                            userdictionary.Add("Account", Btntitle.Text+doorlockBtn.Text);
-                            userdictionary.Add("Type", "1");
-                            userdictionary.Add("UserId", userifon.UserId);
-                        };
-                        doorlockRow.MouseUpEventHandler += doorlockclick;
-                        doorlockBtn.MouseUpEventHandler += doorlockclick;
-                        doorlockSelected.MouseUpEventHandler += doorlockclick;
-                        doorlockfra.MouseUpEventHandler += doorlockclick;
-                        if (edit&&editdeviceConditionsInfo!=null)
-                        {
-                            deviceConditionsInfo = editdeviceConditionsInfo;
-                            if (editdeviceConditionsInfo["AttriButeData2"] == userifon.UserId.ToString())
-                            {
-                                selectedIcon.Visible = false;
-                                selectedIcon = doorlockSelected;
-                                doorlockSelected.Visible = true;
-                            }
-                          
-                        }
-
-                    }
-
-
-                    Btncomplete.MouseUpEventHandler += (sender3, e3) =>
-                    {
-                    
-                        if (SelectedDeviceStatuscondition != "")
-                        {
-                            bool add = 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"] == common.DeviceAddr) && (Common.Logic.CurrentLogic.Conditions[i]["Epoint"] == common.DeviceEpoint.ToString()))
-                                    {
-                                        if (Common.Logic.CurrentLogic.Conditions[i]["AttriButeId"] == editdeviceConditionsInfo["AttriButeId"] && Common.Logic.CurrentLogic.Conditions[i]["AttriButeData2"] == editdeviceConditionsInfo["AttriButeData2"])
-                                        {
-                                            Common.Logic.CurrentLogic.Conditions.RemoveAt(i);
-                                            Common.Logic.CurrentLogic.Conditions.Insert(i, deviceConditionsInfo);
-                                            for (int j = 0; j < Common.Logic.CurrentLogic.Accounts.Count; j++)
-                                            {
-                                                if (Common.Logic.CurrentLogic.Accounts[j]["UserId"] == editdeviceConditionsInfo["AttriButeData2"])
-                                                {
-                                                    Common.Logic.CurrentLogic.Accounts.RemoveAt(j);
-                                                    Common.Logic.CurrentLogic.Accounts.Insert(j, userdictionary);
-                                                }
-                                            }
-                                            add = true;
-                                            break;
-                                        }
-                                    }
-                                }
-                            }
-                            if (!add)
-                            {
-                                Common.Logic.CurrentLogic.Accounts.Add(userdictionary);
-                                Common.Logic.CurrentLogic.Conditions.Add(deviceConditionsInfo);
-                            }
-
-                        }
-                        else
-                        {
-                            if (!edit)
-                            {
-                                var alert = new Alert(Language.StringByID(MyInternationalizationString.Prompt),
-                                                       Language.StringByID(MyInternationalizationString.selectdevicestatuscondition),
-                                                       Language.StringByID(MyInternationalizationString.complete));
-                                alert.Show();
-                                return;
-                            }
-
-                        }
-                        flMain.RemoveFromParent();
-                        var logicCommunalPage = new LogicCommunalPage();
-                        UserView.HomePage.Instance.AddChidren(logicCommunalPage);
-                        UserView.HomePage.Instance.PageIndex += 1;
-                        logicCommunalPage.Show(() => { });
-
-                    };
+                    User(user);
 
                 };
                 userBtn.MouseUpEventHandler += useridclick;
@@ -396,7 +204,262 @@
                 userRow.MouseUpEventHandler += useridclick;
 
             }
-        }
 
+
+        }          
+        /// <summary>
+        /// 褰撳墠鎴愬憳淇℃伅鐨勬柟娉�
+        /// </summary>
+        /// <param name="user"></param>
+        public void User(Send.MembershipIfon user)
+        {
+            var flMain = new FrameLayout { BackgroundColor = ZigbeeColor.Current.LogicViewBackgroundColor };
+            this.AddChidren(flMain);
+            flMain.MouseUpEventHandler += (sender1, e1) =>
+            {
+                flMain.RemoveFromParent();
+            };
+
+            var lockcolorfra = new FrameLayout
+            {
+                Width = Application.GetRealWidth(1080),
+                Height = Application.GetRealHeight(100),
+                Y = Application.GetRealHeight(1920 - 100),
+                BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
+            };
+            flMain.AddChidren(lockcolorfra);
+
+            var lockcolorfra1 = new FrameLayout
+            {
+
+                Width = Application.GetRealWidth(1080),
+                Height = Application.GetRealHeight(530),
+                Y = Application.GetRealHeight(1920 - 530),
+                BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
+                Radius = (uint)Application.GetRealHeight(60),
+            };
+            flMain.AddChidren(lockcolorfra1);
+
+            #region  -------鍙栨秷   瀹屾垚
+            var lockRow = new RowLayout
+            {
+                Height = Application.GetRealHeight(140),
+                LineColor = ZigbeeColor.Current.LogicRowLayoutLineColor,
+            };
+            lockcolorfra1.AddChidren(lockRow);
+            var Btncancel = new Button
+            {
+                TextID = MyInternationalizationString.cancel,
+                TextColor = ZigbeeColor.Current.LogicBtnCancelColor,
+                Height = Application.GetRealHeight(140),
+                Width = Application.GetRealWidth(200),
+                X = Application.GetRealWidth(80),
+                TextAlignment = TextAlignment.CenterLeft,
+                TextSize = 14,
+            };
+            lockRow.AddChidren(Btncancel);
+            Btncancel.MouseUpEventHandler += (sender16, e16) =>
+            {
+                flMain.RemoveFromParent();
+                UserView.HomePage.Instance.ScrollEnabled = true;
+            };
+
+            var Btntitle = new Button
+            {
+                TextID = MyInternationalizationString.security,
+                TextColor = ZigbeeColor.Current.LogicBtnTypeColor,
+                Height = Application.GetRealHeight(140),
+                Width = Application.GetRealWidth(320),
+                TextAlignment = TextAlignment.Center,
+                X = Btncancel.Right + Application.GetRealWidth(100),
+                TextSize = 16,
+                Text = user.UserName,
+            };
+            lockRow.AddChidren(Btntitle);
+            var Btncomplete = new Button
+            {
+                TextID = MyInternationalizationString.complete,
+                TextColor = ZigbeeColor.Current.LogicBtnCompleteColor,
+                Height = Application.GetRealHeight(140),
+                Width = Application.GetRealWidth(200),
+                TextAlignment = TextAlignment.CenterRight,
+                X = Btntitle.Right + Application.GetRealWidth(100),
+                TextSize = 14,
+
+            };
+            lockRow.AddChidren(Btncomplete);
+            #endregion
+            ///瀹氫袱涓彉閲忚褰曚箣鍓嶇殑鍙�硷紱
+            string userId = "";
+            string openMode = "";
+            string accountname = "";
+            string SelectedDeviceStatuscondition = "";
+            lockcolorfra1.Y = Application.GetRealHeight(1920 - 140 - (160 * user.UserIdMode.Count) - 20 - 50);
+            lockcolorfra1.Height = Application.GetRealHeight(140 + (160 * user.UserIdMode.Count) + 20 + 50);
+            for (int i = 0; i < user.UserIdMode.Count; i++)
+            {
+                var userifon = user.UserIdMode[i];
+                var doorlockfra = new FrameLayout
+                {
+                    Height = Application.GetRealHeight(160),
+                    Y = lockRow.Bottom + Application.GetRealHeight(20 + 160 * i),
+                };
+                lockcolorfra1.AddChidren(doorlockfra);
+
+                var doorlockRow = new RowLayout
+                {
+                    Y = Application.GetRealHeight(30),
+                    Width = Application.GetRealWidth(920),
+                    Height = Application.GetRealHeight(130),
+                    X = Application.GetRealWidth(80),
+                    LineColor = ZigbeeColor.Current.LogicRowLayoutLineColor,
+                };
+                doorlockfra.AddChidren(doorlockRow);
+
+                var doorlockBtn = new Button
+                {
+                    Width = Application.GetRealWidth(600),
+                    TextAlignment = TextAlignment.CenterLeft,
+                    TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor,
+                    Text = userifon.ModeName,
+                    TextSize = 14,
+                };
+                doorlockRow.AddChidren(doorlockBtn);
+
+                var doorlockSelected = new Button
+                {
+                    X = Application.GetRealWidth(860),
+                    Width = Application.GetMinRealAverage(60),
+                    Height = Application.GetMinRealAverage(60),
+                    UnSelectedImagePath = "ZigeeLogic/selected.png",
+                    Visible = false,
+                    Gravity = Gravity.CenterVertical,
+
+                };
+                doorlockRow.AddChidren(doorlockSelected);
+                if ((user.UserIdMode.Count - 1) == i)
+                {
+                    doorlockRow.LineColor = ZigbeeColor.Current.LogicBackgroundColor;
+                }
+                EventHandler<MouseEventArgs> doorlockclick = (sender2, e2) =>
+                {
+                    SelectedDeviceStatuscondition = "DoorLock";
+                    selectedIcon.Visible = false;
+                    selectedIcon = doorlockSelected;
+                    doorlockSelected.Visible = true;
+                    userId = userifon.UserId;
+                    openMode = userifon.OpenMode.ToString();
+                    accountname = Btntitle.Text + doorlockBtn.Text;
+                    //doorlockBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
+                };
+                doorlockRow.MouseUpEventHandler += doorlockclick;
+                doorlockBtn.MouseUpEventHandler += doorlockclick;
+                doorlockSelected.MouseUpEventHandler += doorlockclick;
+                doorlockfra.MouseUpEventHandler += doorlockclick;
+
+                if (edit && editdeviceConditionsInfo != null)
+                {
+
+                    if (editdeviceConditionsInfo["AttriButeData2"] == userifon.UserId.ToString())
+                    {
+                        selectedIcon.Visible = false;
+                        selectedIcon = doorlockSelected;
+                        doorlockSelected.Visible = true;
+                    }
+
+                }
+
+            }
+            Btncomplete.MouseUpEventHandler += (sender3, e3) =>
+            {
+                string userIdstr = "", openModestr = "";
+                var deviceConditionsInfo = new Dictionary<string, string>();
+                var userdictionary = new Dictionary<string, string>();
+                deviceConditionsInfo.Add("Type", "1");
+                deviceConditionsInfo.Add("IsValid", "1");
+                deviceConditionsInfo.Add("MacAddr", common.DeviceAddr);
+                deviceConditionsInfo.Add("Epoint", common.DeviceEpoint.ToString());
+                deviceConditionsInfo.Add("Cluster_ID", "64529");
+                deviceConditionsInfo.Add("AttriButeData1", "2");
+                deviceConditionsInfo.Add("Range", "0");
+                deviceConditionsInfo.Add("AttriButeId", openMode);
+                deviceConditionsInfo.Add("AttriButeData2", userId);
+                userdictionary.Add("Account", accountname);
+                userdictionary.Add("Type", "1");
+                userdictionary.Add("UserId", userId);
+                if (edit)
+                {
+                    openModestr = editdeviceConditionsInfo["AttriButeId"];
+                    userIdstr = editdeviceConditionsInfo["AttriButeData2"];
+                }
+                else
+                {
+                    openModestr = deviceConditionsInfo["AttriButeId"];
+                    userIdstr = deviceConditionsInfo["AttriButeData2"];
+                }
+                if (SelectedDeviceStatuscondition != "")
+                {
+                    bool addConditions = false;
+                    bool addAccounts = 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"] == common.DeviceAddr) && (Common.Logic.CurrentLogic.Conditions[i]["Epoint"] == common.DeviceEpoint.ToString()))
+                            {
+                                if (Common.Logic.CurrentLogic.Conditions[i]["AttriButeId"] == openModestr && Common.Logic.CurrentLogic.Conditions[i]["AttriButeData2"] == userIdstr)
+                                {
+                                    Common.Logic.CurrentLogic.Conditions.RemoveAt(i);
+                                    Common.Logic.CurrentLogic.Conditions.Insert(i, deviceConditionsInfo);
+                                    addConditions = true;
+                                    break;
+                                }
+                            }
+                        }
+                    }
+                    for (int j = 0; j < Common.Logic.CurrentLogic.Accounts.Count; j++)
+                    {
+                        if (Common.Logic.CurrentLogic.Accounts[j]["Type"] == "1")
+                        {
+                            if (Common.Logic.CurrentLogic.Accounts[j]["UserId"] == userIdstr)
+                            {
+                                Common.Logic.CurrentLogic.Accounts.RemoveAt(j);
+                                Common.Logic.CurrentLogic.Accounts.Insert(j, userdictionary);
+                                addAccounts = true;
+                                break;
+                            }
+                        }
+                    }
+                    if (!addConditions)
+                    {
+                        Common.Logic.CurrentLogic.Conditions.Add(deviceConditionsInfo);
+                    }
+                    if (!addAccounts)
+                    {
+                        Common.Logic.CurrentLogic.Accounts.Add(userdictionary);
+                    }
+                }
+                else
+                {
+                    if (!edit)
+                    {
+                        var alert = new Alert(Language.StringByID(MyInternationalizationString.Prompt),
+                                               Language.StringByID(MyInternationalizationString.selectdevicestatuscondition),
+                                               Language.StringByID(MyInternationalizationString.complete));
+                        alert.Show();
+                        return;
+                    }
+
+                }
+                flMain.RemoveFromParent();
+                var logicCommunalPage = new LogicCommunalPage();
+                UserView.HomePage.Instance.AddChidren(logicCommunalPage);
+                UserView.HomePage.Instance.PageIndex += 1;
+                logicCommunalPage.Show(() => { });
+
+            };
+
+
+        }
     }
 }

--
Gitblit v1.8.0