From af0266fa5570b6adcdb22f631bf13170e8646ca5 Mon Sep 17 00:00:00 2001
From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local>
Date: 星期一, 28 十月 2019 14:15:21 +0800
Subject: [PATCH] Merge branch 'dev-tzy' into DEV_GXC

---
 ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/AddCondition.cs |  377 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 377 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..577d841
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/AddCondition.cs
@@ -0,0 +1,377 @@
+锘縰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 = "LockLogic";
+        }
+        Button selectedIcon = new Button();
+       
+        public int conditionsIndex = -1;
+        public void Show()
+        {
+            #region  鏈�涓婇潰鐨勫竷灞�浠g爜
+            var topRowLayout = new RowLayout
+            {
+                BackgroundColor = ZigbeeColor.Current.LogicTopBackgroundColor,
+                Height = Application.GetRealHeight(184),
+                LineColor = ZigbeeColor.Current.LogicRowLayoutTopLineColor,
+            };
+            this.AddChidren(topRowLayout);
+
+            var titleName = new Button
+            {
+                TextSize = 16,
+                TextColor = ZigbeeColor.Current.LogicTextBlackColor,
+                TextAlignment = TextAlignment.CenterLeft,
+                X = Application.GetRealWidth(176),
+                Width = Application.GetRealWidth(400),
+                Height = Application.GetRealHeight(69),
+                Y = Application.GetRealHeight(92),
+                //TextID = MyInternationalizationString.selection,
+                Text = "閫夋嫨鐢ㄦ埛",
+            };
+            topRowLayout.AddChidren(titleName);
+
+            var clickBtn = new Button
+            {
+                Width = Application.GetRealWidth(81 + 51),
+                Height = Application.GetRealHeight(58 + 40),
+                Y = Application.GetRealHeight(98 - 40),
+            };
+            topRowLayout.AddChidren(clickBtn);
+            clickBtn.MouseDownEventHandler += (sender, e) =>
+            {
+                RemoveFromParent();
+            };
+
+            var back = new Button
+            {
+                Width = Application.GetRealWidth(30),
+                Height = Application.GetRealHeight(51),
+                X = Application.GetRealWidth(81),
+                Y = Application.GetRealHeight(98),
+                //Gravity = Gravity.CenterVertical;
+                UnSelectedImagePath = "ZigeeLogic/back.png",
+            };
+            topRowLayout.AddChidren(back);
+            back.MouseDownEventHandler += (sender, e) =>
+            {
+                RemoveFromParent();
+            };
+
+            #endregion
+
+            var middle = new VerticalScrolViewLayout
+            {
+                Y = topRowLayout.Bottom,
+                Height = Application.GetRealHeight(1920 - 184),
+                BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
+            };
+            this.AddChidren(middle);
+
+
+            var userlist = new List<ZigBee.Device.DoorLock.LocaDoorLockObj>();
+            userlist.Clear();
+            ///鍒ゆ柇APP鐧诲綍杩涙潵鐢ㄦ埛韬唤(涓讳汉锛岀鐞嗗憳锛屾垚鍛�)
+            if (UserCenter.UserCenterResourse.UserInfo.AuthorityNo == 3)
+            {
+                var list = LockIfon.GetUserIfon(LockIfon.UserMemberInfoRes.SubAccountDistributedMark);
+                foreach (var o in list)
+                {
+                    if (userlist.Count != 0)
+                    {
+                        continue;
+                    }
+                    userlist.Add(o);
+                }
+            }
+            else
+            {
+                userlist = LockIfon.GetUserList();
+            }
+            for (int i = 0; i < userlist.Count; i++)
+            {
+                var user = userlist[i];
+                var userFramelayout = new FrameLayout
+                {
+                    Height = Application.GetRealHeight(160),
+                    BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
+                };
+                middle.AddChidren(userFramelayout);
+
+                var userRow = new RowLayout
+                {
+                    Y = Application.GetRealHeight(30),
+                    Width = Application.GetRealWidth(1080 - 58 - 58),
+                    Height = Application.GetRealHeight(130),
+                    X = Application.GetRealWidth(58),
+                    LineColor = ZigbeeColor.Current.LogicRowLayoutLineColor,
+                };
+                userFramelayout.AddChidren(userRow);
+
+                var usernameBtn = new Button
+                {
+                    Text = user.UserName,
+                    TextAlignment = TextAlignment.CenterLeft,
+                    TextColor = ZigbeeColor.Current.LogicTextBlackColor,
+                    Width = Application.GetRealWidth(600),
+                    Height = Application.GetRealHeight(130),
+                    Tag = userlist[i].ConnectedAccount
+                };
+                userRow.AddChidren(usernameBtn);
+
+                var btntimeback = new Button
+                {
+                    Width = Application.GetRealWidth(58),
+                    Height = Application.GetRealHeight(58),
+                    UnSelectedImagePath = "ZigeeLogic/next.png",
+                    X = userRow.Width - Application.GetRealWidth(58),
+                    Gravity = Gravity.CenterVertical,
+                };
+                userRow.AddChidren(btntimeback);
+
+
+                EventHandler<MouseEventArgs> userclick = (sender, e) =>
+                {
+                    var uesrifonlist = LockIfon.GetUserIfon(usernameBtn.Tag.ToString());
+                    SelectedUserID(uesrifonlist, usernameBtn.Text);
+                };
+                usernameBtn.MouseUpEventHandler += userclick;
+                btntimeback.MouseUpEventHandler += userclick;
+                userFramelayout.MouseUpEventHandler += userclick;
+                userRow.MouseUpEventHandler += userclick;
+
+
+            }
+        }
+        
+        /// <summary>
+        /// 閫夋嫨鏌愪釜鐢ㄦ埛
+        /// </summary>
+        /// <param name="uesrifonlist">瑙﹀彂婧愬垪琛�</param>
+        /// <param name="userName">鐢ㄦ埛鍚嶅瓧</param>
+         void SelectedUserID(List<ZigBee.Device.DoorLock.LocaDoorLockObj> uesrifonlist,string userName) {
+
+           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 =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),
+
+            };
+            lockRow.AddChidren(Btncomplete);
+            #endregion
+
+            string SelectedLockStatus = "";
+            lockcolorfra1.Y = Application.GetRealHeight(1920 - 140 - (160 * uesrifonlist.Count) - 20 - 50);
+            lockcolorfra1.Height = Application.GetRealHeight(140 + (160 * uesrifonlist.Count) + 20 + 50);
+            ///瀹氫箟涓や釜鍙橀噺璁板綍閫変腑鐘舵�侊紱
+            int attriButeId = 0, attriButeData2 = 0;
+            for (int j = 0; j < uesrifonlist.Count; j++)
+            {
+                var userid = uesrifonlist[j];
+                var doorlockfra = new FrameLayout
+                {
+                    Height = Application.GetRealHeight(160),
+                    Y = lockRow.Bottom + Application.GetRealHeight(20 + 160 * j),
+                };
+                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);
+                //(0鎸夐敭/3鍗�/15鎸囩汗)
+                switch (userid.UnlockType)
+                {
+                    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 ((uesrifonlist.Count - 1) == j)
+                {
+                    doorlockRow.LineColor = ZigbeeColor.Current.LogicBackgroundColor;
+                }
+                EventHandler<MouseEventArgs> doorlockclick = (sender2, e2) =>
+                {
+                    SelectedLockStatus = "DoorLock";
+                    selectedIcon.Visible = false;
+                    selectedIcon = doorlockSelected;
+                    doorlockSelected.Visible = true;
+                    //doorlockBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
+                    attriButeId = userid.UnlockType;
+                    attriButeData2 = userid.UserID;
+                };
+                doorlockRow.MouseUpEventHandler += doorlockclick;
+                doorlockBtn.MouseUpEventHandler += doorlockclick;
+                doorlockSelected.MouseUpEventHandler += doorlockclick;
+                doorlockfra.MouseUpEventHandler += doorlockclick;
+                ///鏄剧ず涔嬪墠鐨勭姸鎬�
+                if (conditionsIndex != -1)
+                {
+                    var s = Common.Logic.CurrentLogic.Conditions[conditionsIndex];
+                    if (s["AttriButeId"] == userid.UnlockType.ToString() && s["AttriButeData2"] == userid.UserID.ToString())
+                    {
+                        selectedIcon.Visible = false;
+                        selectedIcon = doorlockSelected;
+                        doorlockSelected.Visible = true;
+                    }
+                }
+            }
+           
+            Btncomplete.MouseUpEventHandler += (sender, e) =>
+            {
+                var lockConditionsInfo = new Dictionary<string, string>();
+                lockConditionsInfo.Add("Type", "1");
+                lockConditionsInfo.Add("IsValid", "1");
+                lockConditionsInfo.Add("MacAddr", LockIfon.DoorLock.DeviceAddr);
+                lockConditionsInfo.Add("Epoint", LockIfon.DoorLock.DeviceEpoint.ToString());
+                lockConditionsInfo.Add("Cluster_ID", "64529");
+                lockConditionsInfo.Add("AttriButeId", attriButeId.ToString());
+                lockConditionsInfo.Add("AttriButeData2", attriButeData2.ToString());
+                lockConditionsInfo.Add("AttriButeData1", "2");
+                lockConditionsInfo.Add("Range", "0");
+                if (SelectedLockStatus != "")
+                {
+                    if (conditionsIndex == -1)
+                    {
+                        Common.Logic.CurrentLogic.Conditions.Add(lockConditionsInfo);
+                    }
+                    else
+                    {
+                        Common.Logic.CurrentLogic.Conditions.RemoveAt(conditionsIndex);
+                        Common.Logic.CurrentLogic.Conditions.Insert(conditionsIndex, lockConditionsInfo);
+                    }
+
+                }
+                else
+                {
+                    if (conditionsIndex == -1)
+                    {
+                        var alert = new Alert(Language.StringByID(MyInternationalizationString.Prompt),
+                                               Language.StringByID(MyInternationalizationString.selectdevicestatuscondition),
+                                               Language.StringByID(MyInternationalizationString.complete));
+                        alert.Show();
+                        return;
+                    }
+                }
+                var lockLogicCommunalPage = new LockLogicCommunalPage();
+                UserView.HomePage.Instance.AddChidren(lockLogicCommunalPage);
+                UserView.HomePage.Instance.PageIndex += 1;
+                lockLogicCommunalPage.Show(() => { });
+            };
+        }
+    }
+}

--
Gitblit v1.8.0