From a4d525d08da7b6fb985b0069c539c11b06306a9b Mon Sep 17 00:00:00 2001 From: WJC <wjc@hdlchina.com.cn> Date: 星期三, 13 十一月 2019 16:28:34 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/dev-tzy' into dev-wjc --- ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/AddCondition.cs | 254 +++++++++++++++----------------------------------- 1 files changed, 77 insertions(+), 177 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/AddCondition.cs b/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/AddCondition.cs index b80464b..ea49ce1 100644 --- a/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/AddCondition.cs +++ b/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 鏈�涓婇潰鐨勫竷灞�浠g爜 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,42 @@ }; this.AddChidren(middle); - var userlist = new List<Send.MembershipIfon>(); - ///鍒ゆ柇APP鐧诲綍杩涙潵鐢ㄦ埛韬唤(涓讳汉锛岀鐞嗗憳锛屾垚鍛�) - var doorlockifonlist = await Send.UserListIfon(LockIfon.DoorLock.DeviceAddr); - if (UserCenter.UserCenterResourse.UserInfo.AuthorityNo == 3) + bool d = false; + string macport = Send.CurrentDoorLock.DeviceAddr + "_" + Send.CurrentDoorLock.DeviceEpoint.ToString(); + for (int i = 0; i < Send.LockList.Count; i++) { - Send.MembershipIfon membershipIfon = new Send.MembershipIfon(); - foreach (var o in doorlockifonlist) + if (Send.LockList[i].DoorLockMacPort == macport) { - - 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); - - } - 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) - { - 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); - } - } - + ///宸茬粡瀛樺湪璇ラ棬閿佷俊鎭� + d = true; + break; } } - for (int i = 0; i < userlist.Count; i++) + if (!d) { - var user = userlist[i]; + + var allMemberslist = await Send.AllMembers(Send.CurrentDoorLock.DeviceAddr); + Send.LockList.AddRange(allMemberslist); + } + UserAllView(middle, macport); + + } + /// <summary> + /// 鏄剧ず鎵�鏈夌敤鎴� + /// </summary> + /// <param name="middle"></param> + void UserAllView(VerticalScrolViewLayout middle,string macport) + { + + for (int i = 0; i < Send.LockList.Count; i++) + { + var user = Send.LockList[i]; + if (user.DoorLockMacPort != macport) + { + continue; + } var userFramelayout = new FrameLayout { Height = Application.GetRealHeight(160), @@ -174,12 +131,12 @@ var usernameBtn = new Button { - Text = user.MembershipName, + Text = user.UserName, TextAlignment = TextAlignment.CenterLeft, TextColor = ZigbeeColor.Current.LogicTextBlackColor, Width = Application.GetRealWidth(600), Height = Application.GetRealHeight(130), - Tag = userlist[i], + Tag = Send.LockList[i], }; userRow.AddChidren(usernameBtn); @@ -206,13 +163,12 @@ } } - /// <summary> /// 閫夋嫨鏌愪釜鐢ㄦ埛 /// </summary> /// <param name="membershipIfon">瑙﹀彂婧愬垪琛�</param> /// <param name="userName">鐢ㄦ埛鍚嶅瓧</param> - void SelectedUserID(List<Send.LockMode> membershipIfon, string userName) { + void SelectedUserID(List<Send.UnlockingMode> membershipIfon, string userName) { var flMain = new FrameLayout { BackgroundColor = ZigbeeColor.Current.LogicViewBackgroundColor }; this.AddChidren(flMain); @@ -320,28 +276,28 @@ Width = Application.GetRealWidth(600), TextAlignment = TextAlignment.CenterLeft, TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor, + Text = userIdmode.ModeName, }; doorlockRow.AddChidren(doorlockBtn); //(0鎸夐敭/3鍗�/15鎸囩汗) - switch (userIdmode.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; - - } + //switch (userIdmode.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 @@ -391,8 +347,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 +358,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 +404,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; - } - */ + } } -- Gitblit v1.8.0