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/DoorLockLogic/AddCondition.cs | 350 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 350 insertions(+), 0 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/AddCondition.cs b/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/AddCondition.cs new file mode 100755 index 0000000..79ba027 --- /dev/null +++ b/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/AddCondition.cs @@ -0,0 +1,350 @@ +锘縰sing System; +using System.Collections.Generic; +using Shared; +using Shared.Common; +using Shared.R; +namespace Shared.Phone.Device.Logic.DoorLockLogic +{ + public class AddCondition : FrameLayout + { + public AddCondition() + { + Tag = "Logic"; + } + Button selectedIcon = new Button(); + VerticalRefreshLayout middle; + public int conditionsIndex = -1; + + public void Show() + { + + #region 鐣岄潰甯冨眬浠g爜 + 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 = Send.CurrentDoorLock.DeviceAddr + "_" + Send.CurrentDoorLock.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 = Send.CurrentDoorLock.DeviceAddr + "_" + Send.CurrentDoorLock.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(); + UserAllView(macport); + }); + } + }); + } + /// <summary> + /// 鏄剧ず鎵�鏈夌敤鎴� + /// </summary> + public void UserAllView(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) => + { + SelectedUserID(user); + }; + + } + } + /// <summary> + /// 閫夋嫨鏌愪釜鐢ㄦ埛 + /// </summary> + /// <param name="user">瑙﹀彂婧愬垪琛�</param> + public void SelectedUserID(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 (conditionsIndex != -1) + { + + ///鏄剧ず涔嬪墠鐨勭姸鎬� + if (conditionsIndex != -1) + { + var s = Common.Logic.CurrentLogic.Conditions[conditionsIndex]; + if (s["AttriButeId"] == userifon.OpenMode.ToString() && s["AttriButeData2"] == userifon.UserId) + { + selectedIcon.Visible = false; + selectedIcon = lockView.selectedIconBtn; + lockView.selectedIconBtn.Visible = true; + } + + } + + } + + } + + + completeView.Btncomplete.MouseUpEventHandler += (sender, e) => + { + var lockConditionsInfo = new Dictionary<string, string>(); + lockConditionsInfo.Add("Type", "1"); + lockConditionsInfo.Add("IsValid", "1"); + lockConditionsInfo.Add("MacAddr", Send.CurrentDoorLock.DeviceAddr); + lockConditionsInfo.Add("Epoint", Send.CurrentDoorLock.DeviceEpoint.ToString()); + lockConditionsInfo.Add("Cluster_ID", "64529"); + lockConditionsInfo.Add("AttriButeId", openMode); + lockConditionsInfo.Add("AttriButeData2", userId); + lockConditionsInfo.Add("AttriButeData1", "2"); + lockConditionsInfo.Add("Range", "0"); + var accounts = new Dictionary<string, string>(); + accounts.Add("Type", "1"); + accounts.Add("Account", Config.Instance.Guid); + accounts.Add("AccountName",accountName); + accounts.Add("UserId", userId); + if (SelectedDeviceStatuscondition != "") + { + if (conditionsIndex == -1) + { + bool addCondition = false; + bool addAccount = 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"]) + { + addCondition = true; + break; + } + } + } + } + + for (int i = 0; i < Common.Logic.CurrentLogic.Accounts.Count; i++) + { + if (Common.Logic.CurrentLogic.Accounts[i]["Type"] == "1") + { + if (Common.Logic.CurrentLogic.Accounts[i]["UserId"] == userId) + { + addAccount = true; + break; + } + } + } + if (!addCondition) + {//娌℃湁瀛樺湪鏁版嵁鏂板姞 + Common.Logic.CurrentLogic.Conditions.Add(lockConditionsInfo); + } + if (!addAccount) + {//娌℃湁瀛樺湪鏁版嵁鏂板姞 + Common.Logic.CurrentLogic.Accounts.Add(accounts); + } + } + else + { + ///鎵惧嚭涔嬪墠鐨勬棫鏁版嵁绉婚櫎鎺夛紝鍐嶉噸鏂版坊鍔犳柊鏁版嵁锛� + string accountuserId = Common.Logic.CurrentLogic.Conditions[conditionsIndex]["AttriButeData2"]; + Common.Logic.CurrentLogic.Conditions.RemoveAt(conditionsIndex); + Common.Logic.CurrentLogic.Conditions.Insert(conditionsIndex, lockConditionsInfo); + for (int i = 0; i < Common.Logic.CurrentLogic.Accounts.Count; i++) + { + if (Common.Logic.CurrentLogic.Accounts[i]["Type"] == "1") + { + ///鎵惧嚭涔嬪墠鐨勬棫鏁版嵁绉婚櫎鎺夛紝鍐嶉噸鏂版坊鍔犳柊鏁版嵁锛� + if (Common.Logic.CurrentLogic.Accounts[i]["UserId"] == accountuserId) + { + Common.Logic.CurrentLogic.Accounts.RemoveAt(i); + Common.Logic.CurrentLogic.Accounts.Insert(i, accounts); + break; + } + } + } + + } + + } + else + { + if (conditionsIndex == -1) + { + var alert = new UserCenter.ShowMsgControl(UserCenter.ShowMsgType.Normal, + Language.StringByID(MyInternationalizationString.usertip), + Language.StringByID(MyInternationalizationString.confrim)); + alert.Show(); + return; + } + } + var lockLogicCommunalPage = new LockLogicCommunalPage(); + UserView.HomePage.Instance.AddChidren(lockLogicCommunalPage); + UserView.HomePage.Instance.PageIndex += 1; + lockLogicCommunalPage.Show(() => { }); + }; + } + + } +} -- Gitblit v1.8.0