WJC
2019-11-04 e5f993f52e09eb46878baced83bb8492f147d41c
ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/AddCondition.cs
@@ -14,7 +14,7 @@
        Button selectedIcon = new Button();
       
        public int conditionsIndex = -1;
        public async  void  Show()
        public async void Show()
        {
            #region  最上面的布局代码
            var topRowLayout = new RowLayout
@@ -31,7 +31,7 @@
                TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                TextAlignment = TextAlignment.CenterLeft,
                X = Application.GetRealWidth(176),
                Width = Application.GetRealWidth(400),
                Width = Application.GetRealWidth(600),
                Height = Application.GetRealHeight(69),
                Y = Application.GetRealHeight(92),
                TextID = MyInternationalizationString.userlist,
@@ -76,85 +76,25 @@
            };
            this.AddChidren(middle);
            var userlist = new List<Send.MembershipIfon>();
            ///判断APP登录进来用户身份(主人,管理员,成员)
            var doorlockifonlist = await Send.UserListIfon(LockIfon.DoorLock.DeviceAddr);
            if (UserCenter.UserCenterResourse.UserInfo.AuthorityNo == 3)
            if (Send.LinkageventLockList.Count == 0)
            {
                Send.MembershipIfon membershipIfon = new Send.MembershipIfon();
                foreach (var o in doorlockifonlist)
                {
                    if (o.CloudAccountId == LockIfon.UserMemberInfoRes.SubAccountDistributedMark)
                    {
                        Send.LockMode lockMode = new Send.LockMode();
                        lockMode.OpenMode = o.OpenLockMode;
                        lockMode.UserId = o.DoorLockLocalUserId;
                        membershipIfon.UserIdMode.Add(lockMode);
                        membershipIfon.MembershipId = LockIfon.UserMemberInfoRes.SubAccountDistributedMark;
                        if (string.IsNullOrEmpty(LockIfon.UserMemberInfoRes.UserName))
                        {
                            membershipIfon.MembershipName = LockIfon.UserMemberInfoRes.Account;
                        }
                        else
                        {
                            membershipIfon.MembershipName = LockIfon.UserMemberInfoRes.UserName;
                        }
                    }
                }
                userlist.Add(membershipIfon);
                var allMemberslist = await Send.AllMembers(Send.CurrentDoorLock.DeviceAddr);
                Send.LinkageventLockList.AddRange(allMemberslist);
            }
            else
            UserAllView(middle);
        }
        /// <summary>
        /// 显示所有用户
        /// </summary>
        /// <param name="middle"></param>
        void UserAllView(VerticalScrolViewLayout middle)
        {
            for (int i = 0; i < Send.LinkageventLockList.Count; i++)
            {
                var pra = new UserCenter.MemberListInfoPra();
                string result = await UserCenter.UserCenterLogic.GetResponseDataByRequestHttps("ZigbeeUsers/GetSubAccountByDistributedMark", false, pra);
                var listInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<List<UserCenter.MemberInfoRes>>(result);
                for (int i = 0; i < listInfo.Count; i++)
                {
                    var membership = new Send.MembershipIfon();
                    var membershipifon = listInfo[i];
                    for (int j = 0; j < doorlockifonlist.Count; j++)
                    {
                        ///查找成员以及成员门锁触发源(1按键/3卡/15指纹)
                        if (doorlockifonlist[j].CloudAccountId == membershipifon.SubAccountDistributedMark)
                        {
                            Send.LockMode lockMode = new Send.LockMode();
                            lockMode.OpenMode = doorlockifonlist[j].OpenLockMode;
                            lockMode.UserId = doorlockifonlist[j].DoorLockLocalUserId;
                            membership.UserIdMode.Add(lockMode);
                            membership.MembershipId = membershipifon.SubAccountDistributedMark;
                            if (string.IsNullOrEmpty(membershipifon.UserName))
                            {
                                membership.MembershipName = membershipifon.Account;
                            }
                            else
                            {
                                membership.MembershipName = membershipifon.UserName;
                            }
                        }
                    }
                    if (membership.UserIdMode.Count != 0)
                    {
                        ///过滤掉重复数据;
                        var str = userlist.Find((c) => { return c.MembershipId == membershipifon.SubAccountDistributedMark; });
                        if (str == null)
                        {
                            userlist.Add(membership);
                        }
                    }
                }
            }
            for (int i = 0; i < userlist.Count; i++)
            {
                var user = userlist[i];
                var user = Send.LinkageventLockList[i];
                var userFramelayout = new FrameLayout
                {
                    Height = Application.GetRealHeight(160),
@@ -179,7 +119,7 @@
                    TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                    Width = Application.GetRealWidth(600),
                    Height = Application.GetRealHeight(130),
                    Tag = userlist[i],
                    Tag = Send.LinkageventLockList[i],
                };
                userRow.AddChidren(usernameBtn);
@@ -206,13 +146,12 @@
            }
        }
        /// <summary>
        /// 选择某个用户
        /// </summary>
        /// <param name="membershipIfon">触发源列表</param>
        /// <param name="userName">用户名字</param>
         void SelectedUserID(List<Send.LockMode> membershipIfon, string userName) {
        void SelectedUserID(List<Send.LockMode> membershipIfon, string userName) {
           var flMain = new FrameLayout { BackgroundColor = ZigbeeColor.Current.LogicViewBackgroundColor };
            this.AddChidren(flMain);
@@ -391,8 +330,8 @@
                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("MacAddr", Send.CurrentDoorLock.DeviceAddr);
                lockConditionsInfo.Add("Epoint", Send.CurrentDoorLock.DeviceEpoint.ToString());
                lockConditionsInfo.Add("Cluster_ID", "64529");
                lockConditionsInfo.Add("AttriButeId", attriButeId);
                lockConditionsInfo.Add("AttriButeData2", attriButeData2);
@@ -402,7 +341,27 @@
                {
                    if (conditionsIndex == -1)
                    {
                        Common.Logic.CurrentLogic.Conditions.Add(lockConditionsInfo);
                        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"] == 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"])
                                    {
                                        add = true;
                                        break;
                                    }
                                }
                            }
                        }
                        if (!add)
                        {
                            Common.Logic.CurrentLogic.Conditions.Add(lockConditionsInfo);
                        }
                    }
                    else
                    {
@@ -428,82 +387,6 @@
                lockLogicCommunalPage.Show(() => { });
            };
        }
        /*
        public async  List<Send.MembershipIfon> readuserlist(){
            var userlist = new List<Send.MembershipIfon>();
            ///判断APP登录进来用户身份(主人,管理员,成员)
            var doorlockifonlist = await Send.UserListIfon(LockIfon.DoorLock.DeviceAddr);
            if (UserCenter.UserCenterResourse.UserInfo.AuthorityNo == 3)
            {
                Send.MembershipIfon membershipIfon = new Send.MembershipIfon();
                //var list = LockIfon.GetUserIfon(LockIfon.UserMemberInfoRes.SubAccountDistributedMark);
                foreach (var o in doorlockifonlist)
                {
                    if (o.CloudAccountId == LockIfon.UserMemberInfoRes.SubAccountDistributedMark)
                    {
                        membershipIfon.MembershipId = LockIfon.UserMemberInfoRes.SubAccountDistributedMark;
                        membershipIfon.UserIdMode.Add(o.OpenLockMode.ToString());
                        if (string.IsNullOrEmpty(LockIfon.UserMemberInfoRes.UserName))
                        {
                            membershipIfon.MembershipName = LockIfon.UserMemberInfoRes.Account;
                        }
                        else
                        {
                            membershipIfon.MembershipName = LockIfon.UserMemberInfoRes.UserName;
                        }
                    }
                }
                userlist.Add(membershipIfon);
            }
            else
            {
                var pra = new UserCenter.MemberListInfoPra();
                string result = await UserCenter.UserCenterLogic.GetResponseDataByRequestHttps("ZigbeeUsers/GetSubAccountByDistributedMark", false, pra);
                var listInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<List<UserCenter.MemberInfoRes>>(result);
                for (int i = 0; i < listInfo.Count; i++)
                {
                    var membership = new Send.MembershipIfon();
                    var membershipifon = listInfo[i];
                    for (int j = 0; j < doorlockifonlist.Count; j++)
                    {
                        ///查找成员以及成员门锁触发源(1按键/3卡/15指纹)
                        if (doorlockifonlist[j].CloudAccountId == membershipifon.SubAccountDistributedMark)
                        {
                            membership.UserIdMode.Add(doorlockifonlist[j].UserIdMode);
                            membership.MembershipId = membershipifon.SubAccountDistributedMark;
                            if (string.IsNullOrEmpty(membershipifon.UserName))
                            {
                                membership.MembershipName = membershipifon.Account;
                            }
                            else
                            {
                                membership.MembershipName = membershipifon.UserName;
                            }
                        }
                    }
                    if (membership.UserIdMode.Count != 0)
                    {
                        ///过滤掉重复数据;
                        var str = userlist.Find((c) => { return c.MembershipId == membership.MembershipId; });
                        if (str == null)
                        {
                            userlist.Add(membership);
                        }
                    }
                }
            }
            return userlist;
        }
        */
    }
}