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 | 558 +++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 377 insertions(+), 181 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/AddCondition.cs b/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/AddCondition.cs index fb24179..b80464b 100644 --- a/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/AddCondition.cs +++ b/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/AddCondition.cs @@ -3,13 +3,18 @@ using Shared; using Shared.Common; using Shared.R; - -namespace Shared.Phone.Logic.DoorLockLogic +namespace Shared.Phone.Device.Logic.DoorLockLogic { public class AddCondition : FrameLayout { + public AddCondition() + { + Tag = "LockLogic"; + } Button selectedIcon = new Button(); - public void Show() + + public int conditionsIndex = -1; + public async void Show() { #region 鏈�涓婇潰鐨勫竷灞�浠g爜 var topRowLayout = new RowLayout @@ -29,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); @@ -71,25 +76,80 @@ }; 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++) @@ -114,11 +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], }; userRow.AddChidren(usernameBtn); @@ -135,169 +196,7 @@ EventHandler<MouseEventArgs> userclick = (sender, e) => { - var uesrifonlist = LockIfon.GetUserIfon(user.ConnectedAccount); - 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 = user.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 SelectedDeviceStatuscondition = ""; - lockcolorfra1.Y = Application.GetRealHeight(1920 - 140 - (160 * uesrifonlist.Count) - 20 - 50); - lockcolorfra1.Height = Application.GetRealHeight(140 + (160 * uesrifonlist.Count) + 20 + 50); - for (int j = 0; j < uesrifonlist.Count; j++) - { - var userid = uesrifonlist[i]; - 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) == i) - { - doorlockRow.LineColor = ZigbeeColor.Current.LogicBackgroundColor; - } - EventHandler<MouseEventArgs> doorlockclick = (sender2, e2) => - { - SelectedDeviceStatuscondition = "DoorLock"; - selectedIcon.Visible = false; - selectedIcon = doorlockSelected; - doorlockSelected.Visible = true; - //doorlockBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor; - - }; - doorlockRow.MouseUpEventHandler += doorlockclick; - doorlockBtn.MouseUpEventHandler += doorlockclick; - doorlockSelected.MouseUpEventHandler += doorlockclick; - doorlockfra.MouseUpEventHandler += doorlockclick; - - } - - - Btncomplete.MouseUpEventHandler += (sender3, e3) => - { - - - }; - + SelectedUserID(user.UserIdMode, usernameBtn.Text); }; usernameBtn.MouseUpEventHandler += userclick; btntimeback.MouseUpEventHandler += userclick; @@ -306,8 +205,305 @@ } - - } + + /// <summary> + /// 閫夋嫨鏌愪釜鐢ㄦ埛 + /// </summary> + /// <param name="membershipIfon">瑙﹀彂婧愬垪琛�</param> + /// <param name="userName">鐢ㄦ埛鍚嶅瓧</param> + void SelectedUserID(List<Send.LockMode> membershipIfon, 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 * membershipIfon.Count) - 20 - 50); + lockcolorfra1.Height = Application.GetRealHeight(140 + (160 * membershipIfon.Count) + 20 + 50); + ///瀹氫箟涓や釜鍙橀噺璁板綍閫変腑鐘舵�侊紱 + string attriButeId ="", attriButeData2 =""; + for (int j = 0; j < membershipIfon.Count; j++) + { + var userIdmode = membershipIfon[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 (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 + { + 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 ((membershipIfon.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 = userIdmode.OpenMode.ToString(); + attriButeData2 = userIdmode.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"] == userIdmode.OpenMode.ToString() && s["AttriButeData2"] == userIdmode.UserId) + { + 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); + lockConditionsInfo.Add("AttriButeData2", attriButeData2); + 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(() => { }); + }; + } + /* + 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