黄学彪
2020-05-11 2e7e5f9af5b32cfe1fc3c6ba40bf7eb984bbd0a4
ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockLogicList.cs
@@ -21,17 +21,27 @@
            this.AddChidren(view.TopRowView());
            view.toptitleNameBtn.TextID = MyInternationalizationString.linkageevent;
            view.clickBtn.MouseDownEventHandler += (sender, e) => { RemoveFromParent(); };
            //加大点击热键
            var addiocnclick = new Button
            {
                Width = Application.GetRealWidth(108+58),
                Height = Application.GetRealHeight(72+20),
                X = Application.GetRealWidth(1080 - 108 - 58),
                Y = Application.GetRealHeight(184 - 72),
            };
            view.topRowLayout.AddChidren(addiocnclick);
            var addiocn = new Button
            {
                Width = Application.GetRealWidth(72),
                Height = Application.GetRealHeight(72),
                Width = Application.GetMinRealAverage(72),
                Height = Application.GetMinRealAverage(72),
                X = Application.GetRealWidth(1080 - 108 - 58),
                UnSelectedImagePath = "ZigeeLogic/lockadd.png",
                Y = Application.GetRealHeight(184 - 72 - 20),
            };
            view.topRowLayout.AddChidren(addiocn);
            addiocn.MouseUpEventHandler += (sender, e) =>
            EventHandler<MouseEventArgs> addclick = (sender, e) =>
            {
                //new一个新逻辑对象;
                Common.Logic.CurrentLogic = new Common.Logic();
@@ -44,6 +54,10 @@
                UserView.HomePage.Instance.PageIndex += 1;
                lockLogicCommunalPage.Show(() => { });
            };
            addiocnclick.MouseUpEventHandler += addclick;
            addiocn.MouseUpEventHandler += addclick;
            #endregion
            middle = new VerticalRefreshLayout
            {
@@ -68,8 +82,12 @@
        /// </summary>
        public async void Read()
        {
            CommonPage.Loading.Start();
            if (Common.Logic.LockLogicList.Count == 0)
            if (!BoolExist())
            {
                var Idlist = await Send.GetLogicId(1);
                if (Idlist.Count != 0)
@@ -86,7 +104,8 @@
                        bool yes = false;
                        for (int a = 0; a < logic.Accounts.Count; a++)
                        {
                            if (logic.Accounts[a]["MacAddr"].ToString() != Send.CurrentDoorLock.DeviceAddr && logic.Accounts[a]["Epoint"].ToString() != Send.CurrentDoorLock.DeviceEpoint.ToString())
                            //Option4是设备mac;Option2是设备端口;
                            if (logic.Accounts[a]["Option4"].ToString() != Send.CurrentDoorLock.DeviceAddr && logic.Accounts[a]["Option2"].ToString() != Send.CurrentDoorLock.DeviceEpoint.ToString())
                            {
                                //查找是否是那个门锁;
                                //如果不是该门锁联动事件不显示出来;
@@ -117,7 +136,8 @@
        {
            middle.RemoveAll();
            if (Common.Logic.LockLogicList.Count == 0)
            //if (Common.Logic.LockLogicList.Count == 0)
            if (!BoolExist())
            {
                //就是为了显示引导添加图标;
                var noFrameLayout = new FrameLayout
@@ -156,6 +176,11 @@
            for (int i = 0; i < Common.Logic.LockLogicList.Count; i++)
            {
                var logic = Common.Logic.LockLogicList[i];
                if (!Exist(logic))
                {
                    continue;
                }
                var logicRowlayout = new RowLayout
                {
                    Width = Application.GetRealWidth(1080),
@@ -259,5 +284,59 @@
            }
        }
        /// <summary>
        /// 查找该门锁是否存在自动化
        /// </summary>
        /// <returns></returns>
        private bool BoolExist()
        {
            bool yes = false;
            for (int i = 0; i < Common.Logic.LockLogicList.Count; i++)
            {
                var logic = Common.Logic.LockLogicList[i];
                if (logic.LogicType != 1)
                {
                    continue;
                }
                if (Exist(logic))
                {
                    yes = true;
                    //存在就退出
                    break;
                }
            }
            return yes;
        }
        /// <summary>
        /// 查找这一条自动化是否属于该门锁
        /// </summary>
        /// <returns></returns>
        private bool Exist(Common.Logic logic)
        {
            bool yes = false;
            for (int j = 0; j < logic.Accounts.Count; j++)
            {
                //Option4是设备mac;Option2是设备端口;
                if (logic.Accounts[j]["Option4"].ToString() != Send.CurrentDoorLock.DeviceAddr && logic.Accounts[j]["Option2"].ToString() != Send.CurrentDoorLock.DeviceEpoint.ToString())
                {
                    //查找是否是那个门锁;
                    //如果不是该门锁联动事件不显示出来;
                    yes = false;
                    break;
                }
                if (logic.Accounts[j]["Account"].ToString() == Config.Instance.Guid)
                {
                    //查找自己账号下的创建联动事件;
                    yes = true;
                    break;
                }
            }
            return yes;
        }
    }
}