From 6fa9d69da922c8049f5acfcbb9ce9fd26811024c Mon Sep 17 00:00:00 2001 From: xm <1271024303@qq.com> Date: 星期四, 16 四月 2020 17:10:57 +0800 Subject: [PATCH] 请合并代码 --- ZigbeeApp/Shared/Phone/Device/Logic/MemberList.cs | 349 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 349 insertions(+), 0 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/MemberList.cs b/ZigbeeApp/Shared/Phone/Device/Logic/MemberList.cs new file mode 100755 index 0000000..13c0e0d --- /dev/null +++ b/ZigbeeApp/Shared/Phone/Device/Logic/MemberList.cs @@ -0,0 +1,349 @@ +锘縰sing System; +using Shared; +using Shared.R; +using System.Collections.Generic; +using Newtonsoft.Json.Linq; +using ZigBee.Device; +using Shared.Common; +namespace Shared.Phone.Device.Logic +{ + public class MemberList : FrameLayout + { + public MemberList() + { + Tag = "Logic"; + } + Button selectedIcon = new Button(); + public static bool edit = false; + VerticalRefreshLayout middle; + CommonDevice common; + Dictionary<string, string> editdeviceConditionsInfo; + public void Show(CommonDevice commondevice, Dictionary<string, string> editdeviceConditions = null) + { + common = commondevice; + editdeviceConditionsInfo = editdeviceConditions; + + #region 鐣岄潰甯冨眬浠g爜 + UserView.HomePage.Instance.ScrollEnabled = false; + this.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor; + TopView view = new TopView(); + this.AddChidren(view.TopRowView()); + view.toptitleNameBtn.TextID = MyInternationalizationString.userlist; + view.clickBtn.MouseDownEventHandler += (sender, e) => { RemoveFromParent(); }; + middle = new VerticalRefreshLayout + { + Y = view.topRowLayout.Bottom, + Height = Application.GetRealHeight(Method.H - 184), + BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor, + }; + this.AddChidren(middle); + #endregion + + middle.BeginHeaderRefreshingAction += () => + { + //閲嶆柊鍒锋柊logic鍒楄〃 + string macport = common.DeviceAddr + "_" + common.DeviceEpoint.ToString(); + for (int i = 0; i < Send.LockList.Count; i++) + { + if (Send.LockList[i].DoorLockMacPort == macport) + { + ///浠庡垪琛ㄧЩ闄ゅ綋鍓嶉棬閿佸叏閮ㄧ殑鏃ф暟鎹紱 + Send.LockList.Remove(Send.LockList[i]); + i--; + } + } + Read(); + //鍏抽棴鍒锋柊View锛� + middle.EndHeaderRefreshing(); + }; + Read(); + } + /// <summary> + /// 璇诲彇褰撳墠闂ㄩ攣鐨勪簯绔暟鎹紱 + /// </summary> + public void Read() + { + + bool d = false; + string macport = common.DeviceAddr + "_" + common.DeviceEpoint.ToString(); + for (int i = 0; i < Send.LockList.Count; i++) + { + if (Send.LockList[i].DoorLockMacPort == macport) + { + ///宸茬粡瀛樺湪璇ラ棬閿佷俊鎭� + d = true; + break; + } + + } + + CommonPage.Loading.Start(); + middle.RemoveAll(); + System.Threading.Tasks.Task.Run(async () => + { + try + { + if (!d) + { + var allMemberslist = await Send.AllMembers(macport); + Send.LockList.AddRange(allMemberslist); + } + } + catch { } + finally + { + Application.RunOnMainThread(() => + { + CommonPage.Loading.Hide(); + UserList(macport); + }); + } + }); + } + /// <summary> + /// 鎴愬憳鍒楄〃鐨勬柟娉� + /// </summary> + /// <param name="macport"></param> + public void UserList(string macport) + { + for (int i=0;i<Send.LockList.Count;i++) + { + var user = Send.LockList[i]; + if (user.DoorLockMacPort != macport) + { + continue; + } + + FunView userView = new FunView(); + userView.iconBtn.Visible = false; + userView.funnameBtn.X = Application.GetRealWidth(81); + userView.funnameBtn.Text = user.UserName; + userView.funnextBtn.X = Application.GetRealWidth(1080 - 81 - 58); + userView.lineBtn.X = Application.GetRealWidth(81); + userView.lineBtn.Width = Application.GetRealWidth(1080 - 81 - 58); + if (Send.LockList.Count - 1 == i) + { + userView.funFrameLayout.Height = Application.GetRealHeight(160 + 20);//鏈�鍚庝竴琛屽鍔�20楂樺害; + userView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor; + } + middle.AddChidren(userView.FunFrameView()); + userView.clickviewBtn.MouseUpEventHandler += (sender, e) => + { + User(user); + }; + + } + + + } + /// <summary> + /// 褰撳墠鎴愬憳淇℃伅鐨勬柟娉� + /// </summary> + /// <param name="user"></param> + public void User(Send.MembershipIfon user) + { + + //鍏冪礌瓒呭嚭9涓氨鐢ㄤ笂涓嬫粦鍔ㄦ帶浠�; + VerticalScrolViewLayout vV = null; + int count = user.UserIdMode.Count; + if (count > 9) + { + ///鍏冪礌瓒呭嚭9涓�; + count = 6; + //鍏冪礌瓒呭嚭9涓氨鐢ㄤ笂涓嬫粦鍔ㄦ帶浠�; + vV = new VerticalScrolViewLayout + { + Y = Application.GetRealHeight(140 + 20), + Height = Application.GetRealHeight(160 * count), + }; + //娓呴櫎涔嬪墠鐨勬帶浠�; + vV.RemoveAll(); + } + + #region -------鍙栨秷 瀹屾垚 + var flMain = new FrameLayout { BackgroundColor = ZigbeeColor.Current.LogicTranslucentColor }; + this.AddChidren(flMain); + CompleteView completeView = new CompleteView(); + flMain.AddChidren(completeView.Show(count)); + completeView.Btntitle.Text = user.UserName; + EventHandler<MouseEventArgs> clickcancel = (sender, e) => + { + UserView.HomePage.Instance.ScrollEnabled = true; + flMain.RemoveFromParent(); + }; + flMain.MouseUpEventHandler += clickcancel; + completeView.Btncancel.MouseUpEventHandler += clickcancel; + + #endregion + ///瀹氫袱涓彉閲忚褰曚箣鍓嶇殑鍙�硷紱 + string userId = ""; + string openMode = ""; + string accountName = ""; + string SelectedDeviceStatuscondition = ""; + for (int i = 0; i < user.UserIdMode.Count; i++) + { + var userifon = user.UserIdMode[i]; + + mFunView lockView = new mFunView(); + if (user.UserIdMode.Count > 9) + { + //鍏冪礌瓒呭嚭9涓氨鐢ㄤ笂涓嬫粦鍔ㄦ帶浠�; + completeView.Show(count).AddChidren(vV); + vV.AddChidren(lockView.Show()); + } + else + { + lockView.frameLayout.Y = Application.GetRealHeight(140 + 20 + 160 * i); + completeView.Show(count).AddChidren(lockView.Show()); + } + lockView.titleBtn.Text = userifon.ModeName; + + if ((user.UserIdMode.Count - 1) == i) + { + lockView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor; + } + lockView.clickviewBtn.MouseUpEventHandler += (sender, e) => + { + SelectedDeviceStatuscondition = "DoorLock"; + selectedIcon.Visible = false; + selectedIcon = lockView.selectedIconBtn; + lockView.selectedIconBtn.Visible = true; + userId = userifon.UserId; + openMode = userifon.OpenMode.ToString(); + accountName = completeView.Btntitle.Text + lockView.titleBtn.Text; + }; + + + if (string.IsNullOrEmpty(lockView.titleBtn.Text)) + { + string strname = ""; + switch (userifon.OpenMode) + { + case 0: + { + strname = Language.StringByID(MyInternationalizationString.lockpassword); + } + break; + case 3: + { + strname = Language.StringByID(MyInternationalizationString.ic); + } + break; + case 15: + { + strname = Language.StringByID(MyInternationalizationString.fingerprint); + } + break; + } + lockView.titleBtn.Text = userifon.UserId + strname; + } + + if (edit && editdeviceConditionsInfo != null) + { + + if (editdeviceConditionsInfo["AttriButeData2"] == userifon.UserId.ToString()) + { + selectedIcon.Visible = false; + selectedIcon = lockView.selectedIconBtn; + lockView.selectedIconBtn.Visible = true; + } + + } + + } + + completeView.Btncomplete.MouseUpEventHandler += (sender, e) => + { + + string userIdstr = "", openModestr = ""; + var deviceConditionsInfo = new Dictionary<string, string>(); + var userdictionary = new Dictionary<string, string>(); + deviceConditionsInfo.Add("Type", "1"); + deviceConditionsInfo.Add("IsValid", "1"); + deviceConditionsInfo.Add("MacAddr", common.DeviceAddr); + deviceConditionsInfo.Add("Epoint", common.DeviceEpoint.ToString()); + deviceConditionsInfo.Add("Cluster_ID", "64529"); + deviceConditionsInfo.Add("AttriButeData1", "2"); + deviceConditionsInfo.Add("Range", "0"); + deviceConditionsInfo.Add("AttriButeId", openMode); + deviceConditionsInfo.Add("AttriButeData2", userId); + userdictionary.Add("Account", Config.Instance.Guid); + userdictionary.Add("AccountName", accountName); + userdictionary.Add("Type", "1"); + userdictionary.Add("UserId", userId); + if (edit) + { + openModestr = editdeviceConditionsInfo["AttriButeId"]; + userIdstr = editdeviceConditionsInfo["AttriButeData2"]; + } + else + { + openModestr = deviceConditionsInfo["AttriButeId"]; + userIdstr = deviceConditionsInfo["AttriButeData2"]; + } + if (SelectedDeviceStatuscondition != "") + { + bool addConditions = false; + bool addAccounts = 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"] == common.DeviceAddr) && (Common.Logic.CurrentLogic.Conditions[i]["Epoint"] == common.DeviceEpoint.ToString())) + { + if (Common.Logic.CurrentLogic.Conditions[i]["AttriButeId"] == openModestr && Common.Logic.CurrentLogic.Conditions[i]["AttriButeData2"] == userIdstr) + { + Common.Logic.CurrentLogic.Conditions.RemoveAt(i); + Common.Logic.CurrentLogic.Conditions.Insert(i, deviceConditionsInfo); + addConditions = true; + break; + } + } + } + } + for (int j = 0; j < Common.Logic.CurrentLogic.Accounts.Count; j++) + { + if (Common.Logic.CurrentLogic.Accounts[j]["Type"] == "1") + { + if (Common.Logic.CurrentLogic.Accounts[j]["UserId"] == userIdstr) + { + Common.Logic.CurrentLogic.Accounts.RemoveAt(j); + Common.Logic.CurrentLogic.Accounts.Insert(j, userdictionary); + addAccounts = true; + break; + } + } + } + if (!addConditions) + {//娌℃湁瀛樺湪鏁版嵁鏂板姞 + Common.Logic.CurrentLogic.Conditions.Add(deviceConditionsInfo); + } + if (!addAccounts) + {//娌℃湁瀛樺湪鏁版嵁鏂板姞 + Common.Logic.CurrentLogic.Accounts.Add(userdictionary); + } + } + else + { + if (!edit) + { + var alert = new UserCenter.ShowMsgControl(UserCenter.ShowMsgType.Normal, + Language.StringByID(MyInternationalizationString.selectdevicestatuscondition), + Language.StringByID(MyInternationalizationString.confrim)); + alert.Show(); + return; + } + + } + flMain.RemoveFromParent(); + var logicCommunalPage = new LogicCommunalPage(); + UserView.HomePage.Instance.AddChidren(logicCommunalPage); + UserView.HomePage.Instance.PageIndex += 1; + logicCommunalPage.Show(() => { }); + + }; + + } + + } +} -- Gitblit v1.8.0