From d7ad5a3953a8cd001659092ebde204b881f94b9d Mon Sep 17 00:00:00 2001 From: WJC <wjc@hdlchina.com.cn> Date: 星期四, 31 十月 2019 10:47:13 +0800 Subject: [PATCH] 2019-10-31-1 --- ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/AddCondition.cs | 198 +++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 165 insertions(+), 33 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/AddCondition.cs b/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/AddCondition.cs index 577d841..b80464b 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 void Show() + public async void Show() { #region 鏈�涓婇潰鐨勫竷灞�浠g爜 var topRowLayout = new RowLayout @@ -34,8 +34,8 @@ Width = Application.GetRealWidth(400), Height = Application.GetRealHeight(69), Y = Application.GetRealHeight(92), - //TextID = MyInternationalizationString.selection, - Text = "閫夋嫨鐢ㄦ埛", + TextID = MyInternationalizationString.userlist, + //Text = "閫夋嫨鐢ㄦ埛", }; topRowLayout.AddChidren(titleName); @@ -76,26 +76,82 @@ }; this.AddChidren(middle); - - var userlist = new List<ZigBee.Device.DoorLock.LocaDoorLockObj>(); - userlist.Clear(); + var userlist = new List<Send.MembershipIfon>(); ///鍒ゆ柇APP鐧诲綍杩涙潵鐢ㄦ埛韬唤(涓讳汉锛岀鐞嗗憳锛屾垚鍛�) + var doorlockifonlist = await Send.UserListIfon(LockIfon.DoorLock.DeviceAddr); if (UserCenter.UserCenterResourse.UserInfo.AuthorityNo == 3) { - var list = LockIfon.GetUserIfon(LockIfon.UserMemberInfoRes.SubAccountDistributedMark); - foreach (var o in list) + Send.MembershipIfon membershipIfon = new Send.MembershipIfon(); + foreach (var o in doorlockifonlist) { - if (userlist.Count != 0) + + if (o.CloudAccountId == LockIfon.UserMemberInfoRes.SubAccountDistributedMark) { - continue; + 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(o); + } + userlist.Add(membershipIfon); + } else { - userlist = LockIfon.GetUserList(); + 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]; @@ -118,12 +174,12 @@ var usernameBtn = new Button { - Text = user.UserName, + Text = user.MembershipName, TextAlignment = TextAlignment.CenterLeft, TextColor = ZigbeeColor.Current.LogicTextBlackColor, Width = Application.GetRealWidth(600), Height = Application.GetRealHeight(130), - Tag = userlist[i].ConnectedAccount + Tag = userlist[i], }; userRow.AddChidren(usernameBtn); @@ -140,8 +196,7 @@ EventHandler<MouseEventArgs> userclick = (sender, e) => { - var uesrifonlist = LockIfon.GetUserIfon(usernameBtn.Tag.ToString()); - SelectedUserID(uesrifonlist, usernameBtn.Text); + SelectedUserID(user.UserIdMode, usernameBtn.Text); }; usernameBtn.MouseUpEventHandler += userclick; btntimeback.MouseUpEventHandler += userclick; @@ -155,9 +210,9 @@ /// <summary> /// 閫夋嫨鏌愪釜鐢ㄦ埛 /// </summary> - /// <param name="uesrifonlist">瑙﹀彂婧愬垪琛�</param> + /// <param name="membershipIfon">瑙﹀彂婧愬垪琛�</param> /// <param name="userName">鐢ㄦ埛鍚嶅瓧</param> - void SelectedUserID(List<ZigBee.Device.DoorLock.LocaDoorLockObj> uesrifonlist,string userName) { + void SelectedUserID(List<Send.LockMode> membershipIfon, string userName) { var flMain = new FrameLayout { BackgroundColor = ZigbeeColor.Current.LogicViewBackgroundColor }; this.AddChidren(flMain); @@ -236,13 +291,13 @@ #endregion string SelectedLockStatus = ""; - lockcolorfra1.Y = Application.GetRealHeight(1920 - 140 - (160 * uesrifonlist.Count) - 20 - 50); - lockcolorfra1.Height = Application.GetRealHeight(140 + (160 * uesrifonlist.Count) + 20 + 50); + lockcolorfra1.Y = Application.GetRealHeight(1920 - 140 - (160 * membershipIfon.Count) - 20 - 50); + lockcolorfra1.Height = Application.GetRealHeight(140 + (160 * membershipIfon.Count) + 20 + 50); ///瀹氫箟涓や釜鍙橀噺璁板綍閫変腑鐘舵�侊紱 - int attriButeId = 0, attriButeData2 = 0; - for (int j = 0; j < uesrifonlist.Count; j++) + string attriButeId ="", attriButeData2 =""; + for (int j = 0; j < membershipIfon.Count; j++) { - var userid = uesrifonlist[j]; + var userIdmode = membershipIfon[j]; var doorlockfra = new FrameLayout { Height = Application.GetRealHeight(160), @@ -268,19 +323,19 @@ }; doorlockRow.AddChidren(doorlockBtn); //(0鎸夐敭/3鍗�/15鎸囩汗) - switch (userid.UnlockType) + switch (userIdmode.OpenMode.ToString()) { - case 0: + case "0": { doorlockBtn.Text = Language.StringByID(MyInternationalizationString.lockpassword); } break; - case 3: + case "3": { doorlockBtn.Text = Language.StringByID(MyInternationalizationString.ic); } break; - case 15: + case "15": { doorlockBtn.Text = Language.StringByID(MyInternationalizationString.fingerprint); } @@ -300,7 +355,7 @@ }; doorlockRow.AddChidren(doorlockSelected); - if ((uesrifonlist.Count - 1) == j) + if ((membershipIfon.Count - 1) == j) { doorlockRow.LineColor = ZigbeeColor.Current.LogicBackgroundColor; } @@ -311,8 +366,8 @@ selectedIcon = doorlockSelected; doorlockSelected.Visible = true; //doorlockBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor; - attriButeId = userid.UnlockType; - attriButeData2 = userid.UserID; + attriButeId = userIdmode.OpenMode.ToString(); + attriButeData2 = userIdmode.UserId; }; doorlockRow.MouseUpEventHandler += doorlockclick; doorlockBtn.MouseUpEventHandler += doorlockclick; @@ -322,7 +377,7 @@ if (conditionsIndex != -1) { var s = Common.Logic.CurrentLogic.Conditions[conditionsIndex]; - if (s["AttriButeId"] == userid.UnlockType.ToString() && s["AttriButeData2"] == userid.UserID.ToString()) + if (s["AttriButeId"] == userIdmode.OpenMode.ToString() && s["AttriButeData2"] == userIdmode.UserId) { selectedIcon.Visible = false; selectedIcon = doorlockSelected; @@ -339,8 +394,8 @@ 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("AttriButeId", attriButeId); + lockConditionsInfo.Add("AttriButeData2", attriButeData2); lockConditionsInfo.Add("AttriButeData1", "2"); lockConditionsInfo.Add("Range", "0"); if (SelectedLockStatus != "") @@ -373,5 +428,82 @@ 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