From 313ca44a4c4fc9cecbe145c80b26f16af836b7bf Mon Sep 17 00:00:00 2001
From: WJC <wjc@hdlchina.com.cn>
Date: 星期五, 20 十二月 2019 13:41:35 +0800
Subject: [PATCH] 2019-12-20-1
---
ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/AddCondition.cs | 524 +++++++++++++++++++++++++++++++++++++--------------------
1 files changed, 336 insertions(+), 188 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/AddCondition.cs b/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/AddCondition.cs
index 150a32a..74ba416 100644
--- a/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/AddCondition.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/AddCondition.cs
@@ -3,12 +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();
+ VerticalRefreshLayout middle;
+ public int conditionsIndex = -1;
+
public void Show()
{
#region 鏈�涓婇潰鐨勫竷灞�浠g爜
@@ -22,15 +28,16 @@
var titleName = new Button
{
- TextSize = 16,
+ TextSize = 17,
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.selection,
- Text = "閫夋嫨鐢ㄦ埛",
+ TextID = MyInternationalizationString.userlist,
+ IsBold = true,
+ //Text = "閫夋嫨鐢ㄦ埛",
};
topRowLayout.AddChidren(titleName);
@@ -63,38 +70,81 @@
#endregion
- var middle = new VerticalScrolViewLayout
+ middle = new VerticalRefreshLayout
{
Y = topRowLayout.Bottom,
Height = Application.GetRealHeight(1920 - 184),
BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
};
this.AddChidren(middle);
-
-
- var userlist = new List<ZigBee.Device.DoorLock.LocaDoorLockObj>();
- userlist.Clear();
-
- if (UserCenter.UserCenterResourse.UserInfo.AuthorityNo == 3)
+ middle.BeginHeaderRefreshingAction += () =>
{
- var list = DoorLockIfon.GetUserIfon(DoorLockIfon.UserMemberInfoRes.SubAccountDistributedMark);
- foreach (var o in list)
+ //閲嶆柊鍒锋柊logic鍒楄〃
+ string macport = Send.CurrentDoorLock.DeviceAddr + "_" + Send.CurrentDoorLock.DeviceEpoint.ToString();
+ for (int i = 0; i < Send.LockList.Count; i++)
{
- if (userlist.Count != 0)
+ if (Send.LockList[i].DoorLockMacPort == macport)
{
- continue;
+ ///浠庡垪琛ㄧЩ闄ゅ綋鍓嶉棬閿佸叏閮ㄧ殑鏃ф暟鎹紱
+ Send.LockList.Remove(Send.LockList[i]);
+ i--;
}
- userlist.Add(o);
+ }
+ Read();
+ //鍏抽棴鍒锋柊View锛�
+ middle.EndHeaderRefreshing();
+ };
+ //Read();
+ CommonPage.Loading.Start();
+ new System.Threading.Thread(() =>
+ {
+ Application.RunOnMainThread(() =>
+ {
+ Read();
+ CommonPage.Loading.Hide();
+ });
+ })
+ { IsBackground = true }.Start();
+
+ }
+ /// <summary>
+ /// 璇诲彇褰撳墠闂ㄩ攣鐨勪簯绔暟鎹紱
+ /// </summary>
+ public async 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;
}
}
- else
+ CommonPage.Loading.Start();
+ if (!d)
{
- userlist = DoorLockIfon.GetUserList();
+ var allMemberslist = await Send.AllMembers(macport);
+ Send.LockList.AddRange(allMemberslist);
}
-
- for (int i = 0; i < userlist.Count; i++)
+ UserAllView(macport);
+ CommonPage.Loading.Hide();
+ }
+ /// <summary>
+ /// 鏄剧ず鎵�鏈夌敤鎴�
+ /// </summary>
+ public void UserAllView(string macport)
+ {
+ middle.RemoveAll();
+ for (int i = 0; i < Send.LockList.Count; i++)
{
- var user = userlist[i];
+ var user = Send.LockList[i];
+ if (user.DoorLockMacPort != macport)
+ {
+ continue;
+ }
var userFramelayout = new FrameLayout
{
Height = Application.GetRealHeight(160),
@@ -119,6 +169,8 @@
TextColor = ZigbeeColor.Current.LogicTextBlackColor,
Width = Application.GetRealWidth(600),
Height = Application.GetRealHeight(130),
+ Tag = Send.LockList[i],
+ TextSize = 14,
};
userRow.AddChidren(usernameBtn);
@@ -135,169 +187,7 @@
EventHandler<MouseEventArgs> userclick = (sender, e) =>
{
- var uesrifonlist = DoorLockIfon.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);
};
usernameBtn.MouseUpEventHandler += userclick;
btntimeback.MouseUpEventHandler += userclick;
@@ -306,8 +196,266 @@
}
-
-
}
+ /// <summary>
+ /// 閫夋嫨鏌愪釜鐢ㄦ埛
+ /// </summary>
+ /// <param name="membershipIfon">瑙﹀彂婧愬垪琛�</param>
+ public void SelectedUserID(Send.MembershipIfon membershipIfon)
+ {
+
+ var flMain = new FrameLayout { BackgroundColor = ZigbeeColor.Current.LogicViewBackgroundColor };
+ this.AddChidren(flMain);
+
+ flMain.MouseUpEventHandler += (sender1, e1) =>
+ {
+ flMain.RemoveFromParent();
+ };
+
+
+
+ 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);
+ lockcolorfra1.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight);
+
+ #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,
+ TextSize = 14,
+ };
+ 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 = membershipIfon.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),
+ TextSize = 14,
+
+ };
+ lockRow.AddChidren(Btncomplete);
+ #endregion
+
+ string SelectedLockStatus = "";
+ lockcolorfra1.Y = Application.GetRealHeight(1920 - 140 - (160 * membershipIfon.UserIdMode.Count) - 20 - 50);
+ lockcolorfra1.Height = Application.GetRealHeight(140 + (160 * membershipIfon.UserIdMode.Count) + 20 + 50);
+ ///瀹氫箟涓や釜鍙橀噺璁板綍閫変腑鐘舵�侊紱
+ string attriButeId = "";
+ string attriButeData2 = "";
+ string modeName = "";
+ for (int j = 0; j < membershipIfon.UserIdMode.Count; j++)
+ {
+ var userIdmode = membershipIfon.UserIdMode[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,
+ Text = userIdmode.ModeName,
+ TextSize = 14,
+ };
+ doorlockRow.AddChidren(doorlockBtn);
+
+ 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.UserIdMode.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;
+ modeName = userIdmode.ModeName;
+ };
+ 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", Send.CurrentDoorLock.DeviceAddr);
+ lockConditionsInfo.Add("Epoint", Send.CurrentDoorLock.DeviceEpoint.ToString());
+ lockConditionsInfo.Add("Cluster_ID", "64529");
+ lockConditionsInfo.Add("AttriButeId", attriButeId);
+ lockConditionsInfo.Add("AttriButeData2", attriButeData2);
+ lockConditionsInfo.Add("AttriButeData1", "2");
+ lockConditionsInfo.Add("Range", "0");
+ var accounts = new Dictionary<string, string>();
+ accounts.Add("Type", "1");
+ accounts.Add("Account", membershipIfon.UserName + modeName);
+ accounts.Add("UserId", attriButeData2);
+ if (SelectedLockStatus != "")
+ {
+ 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;
+ }
+ }
+ }
+ }
+ if (!addCondition)
+ {
+ Common.Logic.CurrentLogic.Conditions.Add(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"] == attriButeData2)
+ {
+ addAccount = true;
+ break;
+ }
+ }
+ }
+ 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 Alert(Language.StringByID(MyInternationalizationString.Prompt),
+ 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