| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Runtime.CompilerServices; |
| | | using System.Runtime.InteropServices; |
| | | using ZigBee.Device; |
| | | |
| | | namespace Shared.Phone.UserCenter.DoorLock |
| | | { |
| | | public class DoorLockCommonInfo : ZigBee.Device.DoorLock |
| | | public class DoorLockCommonInfo : CommonDevice |
| | | { |
| | | #region 本地变量 |
| | | public static bool IsModify = false; |
| | | public static bool InTempPasswordVisiable = false; |
| | | public static int ValidDateYear = 0; |
| | | public static int ValidDateMonth = 0; |
| | |
| | | public static int InValidDateHour = 100; |
| | | public static int InValidDateMinute = 100; |
| | | public static int InValidDateSecond = 0; |
| | | #endregion |
| | | #endregion |
| | | |
| | | /// <summary> |
| | | /// 获取当前账户门锁操作权限(是否被冻结) |
| | | /// </summary> |
| | | /// <param name="doorLock:当前门锁"></param> |
| | | /// <param name="subAccountDistributedMark:登录账户的GUID"></param> |
| | | /// <returns></returns> |
| | | public static async System.Threading.Tasks.Task<bool> GetDoorLockOperateAccess(ZigBee.Device.DoorLock doorLock, string subAccountDistributedMark) |
| | | { |
| | | return await System.Threading.Tasks.Task.Run((Func<System.Threading.Tasks.Task<bool>>)(async () => |
| | | { |
| | | if (doorLock.IsFreezeAccount.ContainsKey(subAccountDistributedMark) == false) |
| | | { |
| | | doorLock.IsFreezeAccount.Add(subAccountDistributedMark, false); |
| | | } |
| | | var resultList = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetAccountDoorLockUserList(doorLock, subAccountDistributedMark); |
| | | var d = resultList.Find((obj) => { return obj.IsFreezeUser == true; }); |
| | | if (d != null) |
| | | { |
| | | doorLock.IsFreezeAccount[subAccountDistributedMark] = true; |
| | | } |
| | | else |
| | | { |
| | | doorLock.IsFreezeAccount[subAccountDistributedMark] = false; |
| | | } |
| | | return doorLock.IsFreezeAccount[subAccountDistributedMark]; |
| | | })); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取当前账户门锁远程开锁权限(是否被拥有远程开锁权限) |
| | | /// </summary> |
| | | /// <param name="doorLock:当前门锁"></param> |
| | | /// <param name="subAccountDistributedMark:登录账户的GUID"></param> |
| | | /// <returns></returns> |
| | | public static async System.Threading.Tasks.Task<bool> GetDoorLockUnlockAccess(ZigBee.Device.DoorLock doorLock, string subAccountDistributedMark) |
| | | { |
| | | return await System.Threading.Tasks.Task.Run((Func<System.Threading.Tasks.Task<bool>>)(async () => |
| | | { |
| | | if (doorLock.HasRemoteUnlockAccess.ContainsKey(subAccountDistributedMark) == false) |
| | | { |
| | | doorLock.HasRemoteUnlockAccess.Add(subAccountDistributedMark, false); |
| | | } |
| | | var resultList = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetAccountDoorLockUserList(doorLock, subAccountDistributedMark); |
| | | var d = resultList.Find((obj) => { return obj.IsTempUnlockAuthority == true; }); |
| | | if (d != null) |
| | | { |
| | | doorLock.HasRemoteUnlockAccess[subAccountDistributedMark] = true; |
| | | } |
| | | else |
| | | { |
| | | doorLock.HasRemoteUnlockAccess[subAccountDistributedMark] = false; |
| | | } |
| | | return doorLock.HasRemoteUnlockAccess[subAccountDistributedMark]; |
| | | })); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取当前账户列表(门锁只对主人和拥有管理员权限对成员用) |
| | | /// </summary> |
| | | public static async System.Threading.Tasks.Task<List<Shared.Phone.UserCenter.MemberInfoRes>> LocalAccountList() |
| | | { |
| | | return await System.Threading.Tasks.Task.Run(async () => |
| | | { |
| | | List<Shared.Phone.UserCenter.MemberInfoRes> localAccountList = new List<Shared.Phone.UserCenter.MemberInfoRes> { }; |
| | | List<Shared.Phone.UserCenter.MemberInfoRes> SubAccounList = new List<Shared.Phone.UserCenter.MemberInfoRes> { }; |
| | | |
| | | //只有主人才有权限获取自己的子账户 |
| | | if (UserCenterResourse.UserInfo.AuthorityNo == 1) |
| | | { |
| | | var SubAccounListTemp = await ZigBee.Device.DoorLock.GetSubAccountByDistributedMark(); |
| | | var SubAccounListDictionary = new Dictionary<string, Shared.Phone.UserCenter.MemberInfoRes> { }; |
| | | |
| | | foreach (var member in SubAccounListTemp) |
| | | { |
| | | //判断一个账户绑定了邮箱的情况 |
| | | if (SubAccounListDictionary.ContainsKey(member.DistributedMark) == true |
| | | || member.Account == UserCenterResourse.UserInfo.Phone |
| | | || member.Account == UserCenterResourse.UserInfo.Email) |
| | | { |
| | | //如果是它自己的话,不显示,账户和绑定的邮箱只显示其中之一 |
| | | continue; |
| | | } |
| | | //去掉子账户中普通成员,留下拥有管理员权限的成员 |
| | | //(因为分配账户给普通成员,普通成员在app中不能进入设备管理那里,所以没发查看主人分配对账户) |
| | | if (member.AccountType != 1) |
| | | { |
| | | continue; |
| | | } |
| | | |
| | | SubAccounListDictionary.Add(member.DistributedMark, member); |
| | | } |
| | | |
| | | foreach (var addMemberID in SubAccounListDictionary.Keys) |
| | | { |
| | | SubAccounList.Add(SubAccounListDictionary[addMemberID]); |
| | | } |
| | | } |
| | | |
| | | // 注意:SubAccountDistributedMark这个值很有用,“添加门锁”到云端信息中,CloudAccountId如果是子账户,则是SubAccountDistributedMark这个值很有用,如果是管理员或者主人则是登录到G |
| | | var masterAccount = new Shared.Phone.UserCenter.MemberInfoRes(); |
| | | masterAccount.Account = Shared.Common.Config.Instance.Account; |
| | | masterAccount.AccountType = Shared.Common.Config.Instance.AccountType; |
| | | masterAccount.SubAccountDistributedMark = Shared.Common.Config.Instance.Guid; |
| | | masterAccount.UserName = UserCenterResourse.UserInfo.UserName; |
| | | localAccountList.Add(masterAccount); |
| | | localAccountList.AddRange(SubAccounList); |
| | | return localAccountList; |
| | | }); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取所有账户和门锁包含的信息 |
| | | /// </summary> |
| | | public static async System.Threading.Tasks.Task<Dictionary<int, LocaDoorLockObj>> GetDoorLockAllAcountUserlist(ZigBee.Device.DoorLock doorLock) |
| | | { |
| | | return await System.Threading.Tasks.Task.Run((Func<System.Threading.Tasks.Task<Dictionary<int, LocaDoorLockObj>>>)(async () => |
| | | { |
| | | //1、读取门锁信息 |
| | | var getDoorLockInfo = await doorLock.GetDoorlockUserInfoAsync(); |
| | | |
| | | //本地门锁列表处理 |
| | | foreach (var curAccountObj in doorLock.localAllAccountList) |
| | | { |
| | | if (getDoorLockInfo == null) |
| | | { |
| | | doorLock.IsFailedToGetDoorLockInfo[curAccountObj.SubAccountDistributedMark] = true; |
| | | } |
| | | else |
| | | { |
| | | doorLock.IsFailedToGetDoorLockInfo[curAccountObj.SubAccountDistributedMark] = false; |
| | | } |
| | | } |
| | | // 用户信息处理 |
| | | if (getDoorLockInfo != null && getDoorLockInfo.doorLockUserDetailData != null) |
| | | { |
| | | doorLock.localDoorLockUserList.Clear(); |
| | | var dataList = getDoorLockInfo.doorLockUserDetailData.UserObjList; |
| | | foreach (var doorData in dataList) |
| | | { |
| | | var localDoorLockObj1 = new ZigBee.Device.DoorLock.LocaDoorLockObj() |
| | | { |
| | | UserID = doorData.UserId, |
| | | UnlockType = doorData.UserType |
| | | }; |
| | | if ((doorLock.localDoorLockUserList.ContainsKey(localDoorLockObj1.UserID)) == false) |
| | | { |
| | | doorLock.localDoorLockUserList.Add(localDoorLockObj1.UserID, localDoorLockObj1); |
| | | } |
| | | } |
| | | |
| | | |
| | | //2、读取云端门锁信息 |
| | | var getDoorLockInfoAllList = new List<ZigBee.Device.DoorLock.CloudDoorLockObj> { }; |
| | | var getDoorLockInfoList = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockAllAccountInfolist(doorLock); |
| | | if (getDoorLockInfoList != null) |
| | | { |
| | | if (getDoorLockInfoList.PageData.Count != 0) |
| | | { |
| | | getDoorLockInfoAllList = getDoorLockInfoList.PageData; |
| | | } |
| | | } |
| | | if (getDoorLockInfoList.TotalPages > 1) |
| | | { |
| | | for (int j = 1; j < getDoorLockInfoList.TotalPages; j++) |
| | | { |
| | | var getDoorLockInfoListTemp = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockAllAccountInfolist(doorLock, j + 1); |
| | | if (getDoorLockInfoListTemp != null) |
| | | { |
| | | if (getDoorLockInfoListTemp.PageData.Count != 0) |
| | | { |
| | | foreach (var curDoorLockUser in getDoorLockInfoListTemp.PageData) |
| | | { |
| | | getDoorLockInfoAllList.Add(curDoorLockUser); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | if (getDoorLockInfoAllList.Count != 0) |
| | | { |
| | | foreach (var curDoorLockUser in getDoorLockInfoAllList) |
| | | { |
| | | if (string.IsNullOrEmpty(curDoorLockUser.DoorLockLocalUserId)) |
| | | { |
| | | continue; |
| | | } |
| | | if (doorLock.localDoorLockUserList.ContainsKey(int.Parse(curDoorLockUser.DoorLockLocalUserId))) |
| | | { |
| | | var doorLockObj = new ZigBee.Device.DoorLock.LocaDoorLockObj() { }; |
| | | doorLockObj.UserID = int.Parse(curDoorLockUser.DoorLockLocalUserId); |
| | | doorLockObj.UnlockType = curDoorLockUser.OpenLockMode; |
| | | doorLockObj.PrimaryId = curDoorLockUser.Id; |
| | | doorLockObj.EntryTime = curDoorLockUser.EntryTime; |
| | | doorLockObj.UserName = curDoorLockUser.UserIdRemarks; |
| | | doorLockObj.ConnectedAccount = curDoorLockUser.CloudAccountId; |
| | | doorLock.localDoorLockUserList[int.Parse(curDoorLockUser.DoorLockLocalUserId)] = doorLockObj; |
| | | } |
| | | else |
| | | { |
| | | if (curDoorLockUser.DoorLockLocalUserId != null) |
| | | { |
| | | //门锁中没有,云端有用户ID,后台删除云端这些ID |
| | | var deleteDoorLockData = new ZigBee.Device.DoorLock.DeleteDoorLockData(); |
| | | if (UserCenterResourse.UserInfo.AuthorityNo != 1) |
| | | { |
| | | deleteDoorLockData.LoginAccessToken = UserCenterLogic.GetConnectMainToken(); |
| | | deleteDoorLockData.IsOtherAccountCtrl = true; |
| | | } |
| | | if (doorLock.DeviceAddr != null) |
| | | { |
| | | deleteDoorLockData.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint; |
| | | } |
| | | deleteDoorLockData.DoorLockLocalUserId = curDoorLockUser.DoorLockLocalUserId; |
| | | deleteDoorLockData.PrimaryId = curDoorLockUser.Id; |
| | | deleteDoorLockData.DelDoorLockDelType = 2; |
| | | var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/DelDoorLock", deleteDoorLockData); |
| | | } |
| | | } |
| | | } |
| | | doorLock.ReSave(); |
| | | } |
| | | } |
| | | return doorLock.localDoorLockUserList; |
| | | })); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取当前账户中门锁信息 |
| | | /// </summary> |
| | | public static async System.Threading.Tasks.Task<Dictionary<int, LocaDoorLockObj>> GetLocaDoorLocklist(ZigBee.Device.DoorLock doorLock, Shared.Phone.UserCenter.MemberInfoRes curAccountObj) |
| | | { |
| | | return await System.Threading.Tasks.Task.Run((Func<System.Threading.Tasks.Task<Dictionary<int, LocaDoorLockObj>>>)(async () => |
| | | { |
| | | //读取设备中的信息 |
| | | doorLock.localDoorLockUserList.Clear(); |
| | | var getDoorLockInfo = await doorLock.GetDoorlockUserInfoAsync(); |
| | | if (getDoorLockInfo == null) |
| | | { |
| | | doorLock.IsFailedToGetDoorLockInfo[curAccountObj.SubAccountDistributedMark] = true; |
| | | } |
| | | else |
| | | { |
| | | doorLock.IsFailedToGetDoorLockInfo[curAccountObj.SubAccountDistributedMark] = false; |
| | | if (getDoorLockInfo != null && getDoorLockInfo.doorLockUserDetailData != null) |
| | | { |
| | | var dataList = getDoorLockInfo.doorLockUserDetailData.UserObjList; |
| | | foreach (var doorData in dataList) |
| | | { |
| | | var localDoorLockObj1 = new ZigBee.Device.DoorLock.LocaDoorLockObj() |
| | | { |
| | | UserID = doorData.UserId, |
| | | UnlockType = doorData.UserType |
| | | }; |
| | | if ((doorLock.localDoorLockUserList.ContainsKey(localDoorLockObj1.UserID)) == false) |
| | | { |
| | | doorLock.localDoorLockUserList.Add(localDoorLockObj1.UserID, localDoorLockObj1); |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 读取云端门锁设备中的信息 |
| | | var getDoorLockInfoAllList = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockAllInfolist(doorLock, curAccountObj.SubAccountDistributedMark); |
| | | if (getDoorLockInfoAllList.Count != 0) |
| | | { |
| | | foreach (var getDoorLockInfoList in getDoorLockInfoAllList) |
| | | { |
| | | if (getDoorLockInfoList != null) |
| | | { |
| | | foreach (var curDoorLockUser in getDoorLockInfoList.PageData) |
| | | { |
| | | if (string.IsNullOrEmpty(curDoorLockUser.DoorLockLocalUserId)) |
| | | { |
| | | continue; |
| | | } |
| | | if (doorLock.localDoorLockUserList.ContainsKey(int.Parse(curDoorLockUser.DoorLockLocalUserId))) |
| | | { |
| | | var doorLockObj = new ZigBee.Device.DoorLock.LocaDoorLockObj() { }; |
| | | doorLockObj.UserID = int.Parse(curDoorLockUser.DoorLockLocalUserId); |
| | | doorLockObj.UnlockType = curDoorLockUser.OpenLockMode; |
| | | doorLockObj.PrimaryId = curDoorLockUser.Id; |
| | | doorLockObj.EntryTime = curDoorLockUser.EntryTime; |
| | | doorLockObj.UserName = curDoorLockUser.UserIdRemarks; |
| | | doorLockObj.ConnectedAccount = curDoorLockUser.CloudAccountId; |
| | | doorLock.localDoorLockUserList[int.Parse(curDoorLockUser.DoorLockLocalUserId)] = doorLockObj; |
| | | } |
| | | else |
| | | { |
| | | if (curDoorLockUser.DoorLockLocalUserId != null) |
| | | { |
| | | //门锁中没有,云端有用户ID,后台删除云端这些ID |
| | | var deleteDoorLockData = new ZigBee.Device.DoorLock.DeleteDoorLockData(); |
| | | if (UserCenterResourse.UserInfo.AuthorityNo != 1) |
| | | { |
| | | deleteDoorLockData.LoginAccessToken = UserCenterLogic.GetConnectMainToken(); |
| | | deleteDoorLockData.IsOtherAccountCtrl = true; |
| | | } |
| | | if (doorLock.DeviceAddr != null) |
| | | { |
| | | deleteDoorLockData.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint; |
| | | } |
| | | deleteDoorLockData.DoorLockLocalUserId = curDoorLockUser.DoorLockLocalUserId; |
| | | deleteDoorLockData.PrimaryId = curDoorLockUser.Id; |
| | | deleteDoorLockData.DelDoorLockDelType = 2; |
| | | var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/DelDoorLock", deleteDoorLockData); |
| | | } |
| | | } |
| | | } |
| | | doorLock.ReSave(); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | return doorLock.localDoorLockUserList; |
| | | })); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取当前账户中云端存储的门锁信息 |
| | | /// </summary> |
| | | public static async System.Threading.Tasks.Task<Dictionary<int, LocaDoorLockObj>> GetCloudLocalDoorLocklist(ZigBee.Device.DoorLock doorLock, string subAccountDistributedMark) |
| | | { |
| | | return await System.Threading.Tasks.Task.Run((Func<System.Threading.Tasks.Task<Dictionary<int, LocaDoorLockObj>>>)(async () => |
| | | { |
| | | var getDoorLockInfoAllList = new List<ZigBee.Device.DoorLock.CloudDoorLockObj> { }; |
| | | // 读取云端门锁设备中的信息 |
| | | var localDoorLockObj = new ZigBee.Device.DoorLock.GetDoorLockData() { }; |
| | | |
| | | if (UserCenterResourse.UserInfo.AuthorityNo != 1) |
| | | { |
| | | localDoorLockObj.LoginAccessToken = UserCenterLogic.GetConnectMainToken(); |
| | | localDoorLockObj.IsOtherAccountCtrl = true; |
| | | } |
| | | |
| | | localDoorLockObj.CloudAccountId = subAccountDistributedMark; |
| | | if (doorLock.DeviceAddr != null) |
| | | { |
| | | localDoorLockObj.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint; |
| | | } |
| | | |
| | | var getDoorLockInfoList = await ZigBee.Device.DoorLock.GetDoorLockInfoFromServer("DoorLock/GetDoorLockPager", localDoorLockObj); |
| | | if (getDoorLockInfoList != null) |
| | | { |
| | | if (getDoorLockInfoList.PageData.Count != 0) |
| | | { |
| | | getDoorLockInfoAllList = getDoorLockInfoList.PageData; |
| | | } |
| | | } |
| | | if (getDoorLockInfoList.TotalPages > 1) |
| | | { |
| | | for (int j = 1; j < getDoorLockInfoList.TotalPages; j++) |
| | | { |
| | | var pageSetting = new ZigBee.Device.DoorLock.PageSetting() { }; |
| | | pageSetting.Page = j + 1; |
| | | localDoorLockObj.pageSetting = pageSetting; |
| | | var getDoorLockInfoListTemp = await ZigBee.Device.DoorLock.GetDoorLockInfoFromServer("DoorLock/GetDoorLockPager", localDoorLockObj); |
| | | if (getDoorLockInfoListTemp != null) |
| | | { |
| | | if (getDoorLockInfoListTemp.PageData.Count != 0) |
| | | { |
| | | foreach (var curDoorLockUser in getDoorLockInfoListTemp.PageData) |
| | | { |
| | | getDoorLockInfoAllList.Add(curDoorLockUser); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | if (getDoorLockInfoAllList.Count != 0) |
| | | { |
| | | foreach (var curDoorLockUser in getDoorLockInfoAllList) |
| | | { |
| | | if (string.IsNullOrEmpty(curDoorLockUser.DoorLockLocalUserId)) |
| | | { |
| | | continue; |
| | | } |
| | | if (doorLock.localDoorLockUserList.ContainsKey(int.Parse(curDoorLockUser.DoorLockLocalUserId))) |
| | | { |
| | | var doorLockObj = new ZigBee.Device.DoorLock.LocaDoorLockObj() { }; |
| | | doorLockObj.UserID = int.Parse(curDoorLockUser.DoorLockLocalUserId); |
| | | doorLockObj.UnlockType = curDoorLockUser.OpenLockMode; |
| | | doorLockObj.PrimaryId = curDoorLockUser.Id; |
| | | doorLockObj.EntryTime = curDoorLockUser.EntryTime; |
| | | doorLockObj.UserName = curDoorLockUser.UserIdRemarks; |
| | | doorLockObj.ConnectedAccount = curDoorLockUser.CloudAccountId; |
| | | doorLock.localDoorLockUserList[int.Parse(curDoorLockUser.DoorLockLocalUserId)] = doorLockObj; |
| | | } |
| | | } |
| | | |
| | | doorLock.ReSave(); |
| | | } |
| | | return doorLock.localDoorLockUserList; |
| | | })); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取云端存储的当前账户的门锁信 |
| | | /// </summary> |
| | | public static async System.Threading.Tasks.Task<List<ZigBee.Device.DoorLock.CloudDoorLockObj>> GetAccountDoorLockUserList(ZigBee.Device.DoorLock doorLock, string subAccountDistributedMark) |
| | | { |
| | | List<ZigBee.Device.DoorLock.CloudDoorLockObj> curAccountDoorLockUserList = new List<ZigBee.Device.DoorLock.CloudDoorLockObj> { }; |
| | | return await System.Threading.Tasks.Task.Run((Func<System.Threading.Tasks.Task<List<ZigBee.Device.DoorLock.CloudDoorLockObj>>>)(async () => |
| | | { |
| | | // 读取云端门锁设备中的信息 |
| | | var getAllDoorLockInfoList = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockAllInfolist(doorLock, subAccountDistributedMark); |
| | | if (getAllDoorLockInfoList != null) |
| | | { |
| | | foreach (var getDoorLockInfoList in getAllDoorLockInfoList) |
| | | { |
| | | //获取云端存储的门锁成员信息 |
| | | foreach (var curDoorLockUser in getDoorLockInfoList.PageData) |
| | | { |
| | | if (string.IsNullOrEmpty(curDoorLockUser.CloudAccountId) || curDoorLockUser.CloudAccountId != subAccountDistributedMark) |
| | | { |
| | | continue; |
| | | } |
| | | else |
| | | { |
| | | curAccountDoorLockUserList.Add(curDoorLockUser); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | return curAccountDoorLockUserList; |
| | | })); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取当前账户门锁的所有信息 |
| | | /// </summary> |
| | | public static async System.Threading.Tasks.Task<List<ZigBee.Device.DoorLock.GetDoorLockDataRes>> GetDoorLockAllInfolist(ZigBee.Device.DoorLock doorLock, string subAccountDistributedMark) |
| | | { |
| | | return await System.Threading.Tasks.Task.Run((Func<System.Threading.Tasks.Task<List<ZigBee.Device.DoorLock.GetDoorLockDataRes>>>)(async () => |
| | | { |
| | | var getDoorLockInfoAllList = new List<ZigBee.Device.DoorLock.GetDoorLockDataRes> { }; |
| | | |
| | | // 读取云端门锁设备中的信息 |
| | | var localDoorLockObj = new ZigBee.Device.DoorLock.GetDoorLockData() { }; |
| | | |
| | | if (UserCenterResourse.UserInfo.AuthorityNo != 1) |
| | | { |
| | | localDoorLockObj.LoginAccessToken = UserCenterLogic.GetConnectMainToken(); |
| | | localDoorLockObj.IsOtherAccountCtrl = true; |
| | | } |
| | | |
| | | localDoorLockObj.CloudAccountId = subAccountDistributedMark; |
| | | if (doorLock.DeviceAddr != null) |
| | | { |
| | | localDoorLockObj.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint; |
| | | } |
| | | |
| | | var getDoorLockInfoList = await ZigBee.Device.DoorLock.GetDoorLockInfoFromServer("DoorLock/GetDoorLockPager", localDoorLockObj); |
| | | if (getDoorLockInfoList != null) |
| | | { |
| | | if (getDoorLockInfoList.PageData.Count != 0) |
| | | { |
| | | getDoorLockInfoAllList.Add(getDoorLockInfoList); |
| | | } |
| | | } |
| | | if (getDoorLockInfoList.TotalPages > 1) |
| | | { |
| | | for (int j = 1; j < getDoorLockInfoList.TotalPages; j++) |
| | | { |
| | | var pageSetting = new ZigBee.Device.DoorLock.PageSetting() { }; |
| | | pageSetting.Page = j + 1; |
| | | localDoorLockObj.pageSetting = pageSetting; |
| | | var getDoorLockInfoListTemp = await ZigBee.Device.DoorLock.GetDoorLockInfoFromServer("DoorLock/GetDoorLockPager", localDoorLockObj); |
| | | if (getDoorLockInfoListTemp != null) |
| | | { |
| | | getDoorLockInfoAllList.Add(getDoorLockInfoListTemp); |
| | | } |
| | | } |
| | | } |
| | | return getDoorLockInfoAllList; |
| | | })); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取当前账户门锁的所有信息 |
| | | /// </summary> |
| | | public static async System.Threading.Tasks.Task<ZigBee.Device.DoorLock.GetDoorLockDataRes> GetDoorLockAllAccountInfolist(ZigBee.Device.DoorLock doorLock, int curPage = 1) |
| | | { |
| | | return await System.Threading.Tasks.Task.Run((Func<System.Threading.Tasks.Task<ZigBee.Device.DoorLock.GetDoorLockDataRes>>)(async () => |
| | | { |
| | | // 读取云端门锁设备中的信息 |
| | | var localDoorLockObj = new ZigBee.Device.DoorLock.GetDoorLockData() { }; |
| | | |
| | | if (UserCenterResourse.UserInfo.AuthorityNo != 1) |
| | | { |
| | | localDoorLockObj.LoginAccessToken = UserCenterLogic.GetConnectMainToken(); |
| | | localDoorLockObj.IsOtherAccountCtrl = true; |
| | | } |
| | | if (doorLock.DeviceAddr != null) |
| | | { |
| | | localDoorLockObj.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint; |
| | | } |
| | | var pageSetting = new ZigBee.Device.DoorLock.PageSetting() { }; |
| | | pageSetting.Page = curPage; |
| | | localDoorLockObj.pageSetting = pageSetting; |
| | | var getDoorLockInfoList = await ZigBee.Device.DoorLock.GetDoorLockInfoFromServer("DoorLock/GetDoorLockPager", localDoorLockObj); |
| | | return getDoorLockInfoList; |
| | | })); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取云端存储的门锁成员信息 |
| | | /// </summary> |
| | | public static async System.Threading.Tasks.Task<Dictionary<int, LocaDoorLockObj>> GetLocaDoorLockAccountlist(ZigBee.Device.DoorLock doorLock, Shared.Phone.UserCenter.MemberInfoRes curAccountObj, int curPage) |
| | | { |
| | | return await System.Threading.Tasks.Task.Run((Func<System.Threading.Tasks.Task<Dictionary<int, LocaDoorLockObj>>>)(async () => |
| | | { |
| | | // 读取云端门锁设备中的信息 |
| | | var localDoorLockObj = new ZigBee.Device.DoorLock.GetDoorLockData() { }; |
| | | if (UserCenterResourse.UserInfo.AuthorityNo != 1) |
| | | { |
| | | localDoorLockObj.LoginAccessToken = UserCenterLogic.GetConnectMainToken(); |
| | | localDoorLockObj.IsOtherAccountCtrl = true; |
| | | } |
| | | localDoorLockObj.CloudAccountId = curAccountObj.SubAccountDistributedMark; |
| | | { |
| | | localDoorLockObj.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint; |
| | | } |
| | | if (doorLock.DeviceAddr != null) |
| | | { |
| | | localDoorLockObj.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint; |
| | | } |
| | | var pageSetting = new ZigBee.Device.DoorLock.PageSetting() { }; |
| | | pageSetting.Page = curPage; |
| | | localDoorLockObj.pageSetting = pageSetting; |
| | | var getDoorLockInfoList = await ZigBee.Device.DoorLock.GetDoorLockInfoFromServer("DoorLock/GetDoorLockPager", localDoorLockObj); |
| | | if (getDoorLockInfoList != null) |
| | | { |
| | | foreach (var curDoorLockUser in getDoorLockInfoList.PageData) |
| | | { |
| | | var doorLockObj = new ZigBee.Device.DoorLock.LocaDoorLockObj() { }; |
| | | if (curDoorLockUser.DoorLockLocalUserId != null) |
| | | { |
| | | doorLockObj.UserID = int.Parse(curDoorLockUser.DoorLockLocalUserId); |
| | | doorLockObj.UnlockType = curDoorLockUser.OpenLockMode; |
| | | doorLockObj.UserName = curDoorLockUser.UserIdRemarks; |
| | | } |
| | | doorLockObj.PrimaryId = curDoorLockUser.Id; |
| | | doorLockObj.EntryTime = curDoorLockUser.EntryTime; |
| | | doorLockObj.ConnectedAccount = curDoorLockUser.CloudAccountId; |
| | | if (doorLock.localDoorLockAccountList.ContainsKey(curDoorLockUser.CloudAccountId) == false) |
| | | { |
| | | doorLock.localDoorLockAccountList.Add(doorLockObj.ConnectedAccount, doorLockObj); |
| | | } |
| | | else |
| | | { |
| | | doorLock.localDoorLockAccountList[curDoorLockUser.DoorLockLocalUserId] = doorLockObj; |
| | | } |
| | | } |
| | | } |
| | | return doorLock.localDoorLockUserList; |
| | | })); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取本地匹配成员的门锁用户信息列表 |
| | | /// </summary> |
| | | public static async System.Threading.Tasks.Task<Dictionary<int, LocaDoorLockObj>> GetMatchDoorlockAccountList(ZigBee.Device.DoorLock doorLock, Shared.Phone.UserCenter.MemberInfoRes curAccountObj) |
| | | { |
| | | return await System.Threading.Tasks.Task.Run((Func<System.Threading.Tasks.Task<Dictionary<int, LocaDoorLockObj>>>)(async () => |
| | | { |
| | | var curAccountDoorLockUserList = new Dictionary<int, ZigBee.Device.DoorLock.LocaDoorLockObj>(); |
| | | foreach (var curUserId in doorLock.localDoorLockAccountList.Keys) |
| | | { |
| | | var curDoorLockUser = doorLock.localDoorLockAccountList[curUserId]; |
| | | |
| | | if (string.IsNullOrEmpty(curDoorLockUser.ConnectedAccount) || curDoorLockUser.ConnectedAccount != curAccountObj.SubAccountDistributedMark) |
| | | { |
| | | continue; |
| | | } |
| | | else |
| | | { |
| | | curAccountDoorLockUserList.Add(curDoorLockUser.UserID, curDoorLockUser); |
| | | } |
| | | } |
| | | return curAccountDoorLockUserList; |
| | | })); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 生成6位临时密码 |
| | | /// </summary> |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 所有方式选择 |
| | | /// 门锁编程事件通知 |
| | | /// </summary> |
| | | public void SideslipFramelayout(ZigBee.Device.DoorLock doorLock) |
| | | [System.Serializable] |
| | | public class LocaDoorLockObj |
| | | { |
| | | //var dialog = new Dialog |
| | | //{ |
| | | //}; |
| | | //dialog.Show(); |
| | | |
| | | //var flMain = new FrameLayout { BackgroundColor = 0x00000000 }; |
| | | //dialog.AddChidren(flMain); |
| | | //flMain.MouseUpEventHandler += (sender11, e11) => |
| | | //{ |
| | | // dialog.Close(); |
| | | //}; |
| | | |
| | | //var sidelipFrameLayout = new FrameLayout() |
| | | //{ |
| | | // Height = Application.GetRealHeight(625), |
| | | // Width = Application.GetRealWidth(449), |
| | | // Y = Application.GetRealHeight(115 + 160), |
| | | // X = Application.GetRealWidth(596), |
| | | // BackgroundImagePath = "DoorLock/SideslipPic.png", |
| | | //}; |
| | | //flMain.AddChidren(sidelipFrameLayout); |
| | | |
| | | //var sidelipVerticalScrolViewLayout = new VerticalScrolViewLayout() |
| | | //{ |
| | | // Height = Application.GetRealHeight(600), |
| | | // Y = Application.GetRealHeight(28), |
| | | //}; |
| | | //sidelipFrameLayout.AddChidren(sidelipVerticalScrolViewLayout); |
| | | //Button oldbutton = null; |
| | | //Button oldbuttonText = null; |
| | | //for (var i = 0; i < 4; i++) |
| | | //{ |
| | | // var rowFrameLayout = new RowLayout() |
| | | // { |
| | | // Height = Application.GetRealHeight(150), |
| | | // }; |
| | | // sidelipVerticalScrolViewLayout.AddChidren(rowFrameLayout); |
| | | |
| | | // var btnAllMethod = new Button() |
| | | // { |
| | | // Width = Application.GetRealWidth(81), |
| | | // Height = Application.GetRealHeight(81), |
| | | // X = Application.GetRealWidth(81), |
| | | // Y = Application.GetRealHeight(55), |
| | | // }; |
| | | // rowFrameLayout.AddChidren(btnAllMethod); |
| | | |
| | | // var btnMethodText = new Button() |
| | | // { |
| | | // Width = Application.GetRealWidth(311), |
| | | // Height = Application.GetRealHeight(58), |
| | | // X = Application.GetRealWidth(173), |
| | | // Y = Application.GetRealHeight(69), |
| | | // TextColor = Shared.Common.ZigbeeColor.Current.XMGray3, |
| | | // TextSize = 14, |
| | | // TextAlignment = TextAlignment.CenterLeft, |
| | | // }; |
| | | // rowFrameLayout.AddChidren(btnMethodText); |
| | | |
| | | // EventHandler<MouseEventArgs> hander = (sender, e) => |
| | | // { |
| | | // if (!btnAllMethod.IsSelected) |
| | | // { |
| | | // if (oldbutton != null) |
| | | // { |
| | | // oldbutton.IsSelected = false; |
| | | // } |
| | | // if (oldbuttonText != null) |
| | | // { |
| | | // oldbuttonText.TextColor = Shared.Common.ZigbeeColor.Current.XMGray3; |
| | | // } |
| | | // oldbutton = btnAllMethod; |
| | | // oldbuttonText = btnMethodText; |
| | | // doorLock.currentUserDisplayMethod = btnMethodText.Text; |
| | | // btnAllMethod.IsSelected = true; |
| | | // oldbuttonText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack; |
| | | |
| | | // // 类型区分 |
| | | // if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.AllMethod)) |
| | | // { |
| | | // RefreshList(); |
| | | // } |
| | | // if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.PasswordUnlock)) |
| | | // { |
| | | // DisplayByType(0); |
| | | // } |
| | | // if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.FingerprintUnlock)) |
| | | // { |
| | | // DisplayByType(15); |
| | | // } |
| | | // if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.ProximithCardUnlock)) |
| | | // { |
| | | // DisplayByType(3); |
| | | // } |
| | | // } |
| | | // dialog.Close(); |
| | | // }; |
| | | // rowFrameLayout.MouseUpEventHandler += hander; |
| | | // btnAllMethod.MouseUpEventHandler += hander; |
| | | // btnMethodText.MouseUpEventHandler += hander; |
| | | |
| | | // switch (i) |
| | | // { |
| | | // case 0: |
| | | // btnAllMethod.UnSelectedImagePath = "DoorLock/AllMethod.png"; |
| | | // btnAllMethod.SelectedImagePath = "DoorLock/AllMethodOn.png"; |
| | | // btnMethodText.Text = Language.StringByID(R.MyInternationalizationString.AllMethod); |
| | | // break; |
| | | // case 1: |
| | | // btnAllMethod.UnSelectedImagePath = "DoorLock/Password.png"; |
| | | // btnAllMethod.SelectedImagePath = "DoorLock/PasswordOn.png"; |
| | | // btnMethodText.Text = Language.StringByID(R.MyInternationalizationString.PasswordUnlock); |
| | | // break; |
| | | // case 2: |
| | | // btnAllMethod.UnSelectedImagePath = "DoorLock/Fingerprint.png"; |
| | | // btnAllMethod.SelectedImagePath = "DoorLock/FingerprintOn.png"; |
| | | // btnMethodText.Text = Language.StringByID(R.MyInternationalizationString.FingerprintUnlock); |
| | | // break; |
| | | // case 3: |
| | | // btnAllMethod.UnSelectedImagePath = "DoorLock/proximityCard.png"; |
| | | // btnAllMethod.SelectedImagePath = "DoorLock/proximityCardOn.png"; |
| | | // btnMethodText.Text = Language.StringByID(R.MyInternationalizationString.ProximithCardUnlock); |
| | | // break; |
| | | // } |
| | | |
| | | // if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.AllMethod) && i == 0) |
| | | // { |
| | | // btnAllMethod.IsSelected = true; |
| | | // btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack; |
| | | // oldbutton = btnAllMethod; |
| | | // oldbuttonText = btnMethodText; |
| | | // } |
| | | // if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.PasswordUnlock) && i == 1) |
| | | // { |
| | | // btnAllMethod.IsSelected = true; |
| | | // btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack; |
| | | // oldbutton = btnAllMethod; |
| | | // oldbuttonText = btnMethodText; |
| | | // } |
| | | // if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.FingerprintUnlock) && i == 2) |
| | | // { |
| | | // btnAllMethod.IsSelected = true; |
| | | // btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack; |
| | | // oldbutton = btnAllMethod; |
| | | // oldbuttonText = btnMethodText; |
| | | // } |
| | | // if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.ProximithCardUnlock) && i == 3) |
| | | // { |
| | | // btnAllMethod.IsSelected = true; |
| | | // btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack; |
| | | // oldbutton = btnAllMethod; |
| | | // oldbuttonText = btnMethodText; |
| | | // } |
| | | //} |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 通过类型筛选显示 |
| | | /// </summary> |
| | | public void DisplayByType(ZigBee.Device.DoorLock doorLock, Shared.Phone.UserCenter.MemberInfoRes curAccountObj, int unlockMethod, VerticalScrolViewLayout bodyView, Button entryStatusPic, Button btnPicTip, Button btnPicTip1) |
| | | { |
| | | //bodyView.RemoveAll(); |
| | | //var curAccountDoorLockUserList = new Dictionary<int, ZigBee.Device.DoorLock.LocaDoorLockObj>(); |
| | | |
| | | //foreach (var curUserId in doorLock.localDoorLockUserList.Keys) |
| | | //{ |
| | | // var curDoorLockUser = doorLock.localDoorLockUserList[curUserId]; |
| | | |
| | | // if (curDoorLockUser.ConnectedAccount == "" || curDoorLockUser.ConnectedAccount != curAccountObj.SubAccountDistributedMark) |
| | | // { |
| | | // continue; |
| | | // } |
| | | // else |
| | | // { |
| | | // curAccountDoorLockUserList.Add(curDoorLockUser.UserID, curDoorLockUser); |
| | | // } |
| | | //} |
| | | |
| | | //if (curAccountDoorLockUserList.Count == 0) |
| | | //{ |
| | | // entryStatusPic.Visible = true; |
| | | // btnPicTip.Visible = true; |
| | | // btnPicTip1.Visible = true; |
| | | //} |
| | | //else |
| | | //{ |
| | | // entryStatusPic.Visible = false; |
| | | // btnPicTip.Visible = false; |
| | | // btnPicTip1.Visible = false; |
| | | //} |
| | | |
| | | //foreach (var curUserId in curAccountDoorLockUserList.Keys) |
| | | //{ |
| | | // var curDoorLockUser = curAccountDoorLockUserList[curUserId]; |
| | | // if (curDoorLockUser.UnlockType != unlockMethod) |
| | | // { |
| | | // continue; |
| | | // } |
| | | // #region UI |
| | | // var rowFrameLayout = new RowLayout() |
| | | // { |
| | | // Height = Application.GetRealHeight(173), |
| | | // X = Application.GetRealWidth(58), |
| | | // Width = Application.GetRealWidth(965), |
| | | // LineColor = Shared.Common.ZigbeeColor.Current.XMRowLine, |
| | | // }; |
| | | // bodyView.AddChidren(rowFrameLayout); |
| | | |
| | | // var btnPicFrameLayout = new FrameLayout() |
| | | // { |
| | | // Width = Application.GetRealWidth(81), |
| | | // Height = Application.GetRealHeight(81), |
| | | // X = Application.GetRealWidth(40), |
| | | // Y = Application.GetRealHeight(49), |
| | | // }; |
| | | // rowFrameLayout.AddChidren(btnPicFrameLayout); |
| | | |
| | | // var btnPic = new Button() |
| | | // { |
| | | // Width = Application.GetRealWidth(84), |
| | | // Height = Application.GetRealHeight(84), |
| | | // UnSelectedImagePath = "DoorLock/DoorLockUserPic.png", |
| | | // }; |
| | | // btnPicFrameLayout.AddChidren(btnPic); |
| | | |
| | | // var btnDoorlockUser = new EditText() |
| | | // { |
| | | // Width = Application.GetRealWidth(1080 - 173), |
| | | // Height = Application.GetRealHeight(60), |
| | | // X = Application.GetRealWidth(173), |
| | | // Y = Application.GetRealHeight(35), |
| | | // TextSize = 14, |
| | | // PlaceholderTextColor = Shared.Common.ZigbeeColor.Current.XMGray3, |
| | | // TextColor = Shared.Common.ZigbeeColor.Current.XMBlack, |
| | | // TextAlignment = TextAlignment.CenterLeft, |
| | | // }; |
| | | // rowFrameLayout.AddChidren(btnDoorlockUser); |
| | | |
| | | // var btnMember = new Button() |
| | | // { |
| | | // Width = Application.GetRealWidth(1080 - 173), |
| | | // Height = Application.GetRealHeight(49), |
| | | // X = Application.GetRealWidth(173), |
| | | // Y = Application.GetRealHeight(95), |
| | | // TextColor = Shared.Common.ZigbeeColor.Current.XMGray3, |
| | | // TextSize = 14, |
| | | // TextAlignment = TextAlignment.CenterLeft, |
| | | // }; |
| | | // rowFrameLayout.AddChidren(btnMember); |
| | | |
| | | // var btnDel = new Button() |
| | | // { |
| | | // Width = Application.GetRealWidth(1080 - 173), |
| | | // Height = Application.GetRealHeight(49), |
| | | // X = Application.GetRealWidth(173), |
| | | // Y = Application.GetRealHeight(95), |
| | | // Text = Language.StringByID(R.MyInternationalizationString.Delete), |
| | | // TextColor = Shared.Common.ZigbeeColor.Current.XMWhite, |
| | | // TextSize = 12, |
| | | // TextAlignment = TextAlignment.Center, |
| | | // BackgroundColor = Shared.Common.ZigbeeColor.Current.XMDel, |
| | | // }; |
| | | // rowFrameLayout.AddRightView(btnDel); |
| | | // #endregion |
| | | // #region 数据处理 |
| | | // switch (curDoorLockUser.UnlockType) |
| | | // { |
| | | // case 0: |
| | | // if (curDoorLockUser.UserName != "") |
| | | // { |
| | | // btnDoorlockUser.Text = curDoorLockUser.UserName; |
| | | // } |
| | | // else |
| | | // { |
| | | // btnDoorlockUser.Text = Language.StringByID(R.MyInternationalizationString.Password) + "ID" + curDoorLockUser.UserID; |
| | | // } |
| | | // break; |
| | | // case 3: |
| | | // if (curDoorLockUser.UserName != "") |
| | | // { |
| | | // btnDoorlockUser.Text = curDoorLockUser.UserName; |
| | | // } |
| | | // else |
| | | // { |
| | | // btnDoorlockUser.Text = Language.StringByID(R.MyInternationalizationString.IcCard) + "ID" + curDoorLockUser.UserID; |
| | | // } |
| | | // break; |
| | | // case 15: |
| | | // if (curDoorLockUser.UserName != "") |
| | | // { |
| | | // btnDoorlockUser.Text = curDoorLockUser.UserName; |
| | | // } |
| | | // else |
| | | // { |
| | | // btnDoorlockUser.Text = Language.StringByID(R.MyInternationalizationString.Fingerprint) + "ID" + +curDoorLockUser.UserID; |
| | | // } |
| | | // break; |
| | | // } |
| | | |
| | | // if (curAccountObj.UserName == "") |
| | | // { |
| | | // btnMember.Text = curAccountObj.Account; |
| | | // } |
| | | // else |
| | | // { |
| | | // btnMember.Text = curAccountObj.UserName; |
| | | // } |
| | | |
| | | // Action<Shared.View> action = async (obj) => |
| | | // { |
| | | // var refreshDoorLockData = new ZigBee.Device.DoorLock.RefreshDoorLockData(); |
| | | // refreshDoorLockData.CloudAccountId = curAccountObj.SubAccountDistributedMark; |
| | | // if (doorLock.DeviceAddr != null) |
| | | // { |
| | | // refreshDoorLockData.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint; |
| | | // } |
| | | // refreshDoorLockData.OpenLockMode = curDoorLockUser.UnlockType; |
| | | // refreshDoorLockData.DoorLockLocalUserId = curDoorLockUser.UserID.ToString(); |
| | | // refreshDoorLockData.PrimaryId = curDoorLockUser.PrimaryId; |
| | | // refreshDoorLockData.UserIdRemarks = btnDoorlockUser.Text; |
| | | // var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("App/UpdateDoorLock", refreshDoorLockData); |
| | | // if (result.StateCode == "Success") |
| | | // { |
| | | // if (doorLock.localDoorLockUserList.ContainsKey(curDoorLockUser.UserID)) |
| | | // { |
| | | // doorLock.localDoorLockUserList.Remove(curDoorLockUser.UserID); |
| | | // var localDoorLockObj = new ZigBee.Device.DoorLock.LocaDoorLockObj() { }; |
| | | // localDoorLockObj.UserID = curDoorLockUser.UserID; |
| | | // localDoorLockObj.UnlockType = curDoorLockUser.UnlockType; |
| | | // localDoorLockObj.EntryTime = curDoorLockUser.EntryTime; |
| | | // localDoorLockObj.UserName = refreshDoorLockData.UserIdRemarks; |
| | | // localDoorLockObj.ConnectedAccount = curAccountObj.SubAccountDistributedMark; |
| | | // doorLock.localDoorLockUserList.Add(curDoorLockUser.UserID, localDoorLockObj); |
| | | // RefreshList(); |
| | | // } |
| | | // } |
| | | // else |
| | | // { |
| | | // new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.ModigfyFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnDoorlockUser); |
| | | // } |
| | | // }; |
| | | // btnDoorlockUser.EditorEnterAction += action; |
| | | |
| | | // btnDel.MouseUpEventHandler += (sender, e) => |
| | | // { |
| | | // var alert = new Alert(Language.StringByID(R.MyInternationalizationString.Tip), Language.StringByID(R.MyInternationalizationString.SureToDelUnlockMethod), |
| | | // Language.StringByID(R.MyInternationalizationString.Cancel), Language.StringByID(R.MyInternationalizationString.Confrim)); |
| | | // alert.Show(); |
| | | // alert.ResultEventHandler += async (sender1, e1) => |
| | | // { |
| | | // if (e1) |
| | | // { |
| | | // var passData = doorLock.SetUserAccessData(curDoorLockUser.UserID, ZigBee.Device.DoorLock.AccessType.DelCurrentUser); |
| | | // var resultData = await doorLock.DefaultControlAsync(passData); |
| | | // if (resultData != null && resultData.responseData != null) |
| | | // { |
| | | // if (resultData.responseData.status == 0) |
| | | // { |
| | | // var deleteDoorLockData = new ZigBee.Device.DoorLock.DeleteDoorLockData(); |
| | | // if (doorLock.DeviceAddr != null) |
| | | // { |
| | | // deleteDoorLockData.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint; |
| | | // } |
| | | // deleteDoorLockData.DoorLockLocalUserId = curDoorLockUser.UserID.ToString(); |
| | | // deleteDoorLockData.PrimaryId = curDoorLockUser.PrimaryId; |
| | | // deleteDoorLockData.DelDoorLockDelType = 2; |
| | | // var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("App/DelDoorLock", deleteDoorLockData); |
| | | // if (result.StateCode == "Success") |
| | | // { |
| | | // if (doorLock.localDoorLockUserList.ContainsKey(curDoorLockUser.UserID)) |
| | | // { |
| | | // doorLock.localDoorLockUserList.Remove(curDoorLockUser.UserID); |
| | | // var localDoorLockObj = new ZigBee.Device.DoorLock.LocaDoorLockObj() { }; |
| | | // localDoorLockObj.UserID = curDoorLockUser.UserID; |
| | | |
| | | // //new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RemoveSuccess), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnDel); |
| | | // doorLock.localDoorLockUserList.Remove(curUserId); |
| | | // RefreshList(); |
| | | // } |
| | | // } |
| | | // else |
| | | // { |
| | | // if (curDoorLockUser.UserID < 10) |
| | | // { |
| | | |
| | | // } |
| | | // else |
| | | // { |
| | | // new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.ModigfyFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnDoorlockUser); |
| | | // } |
| | | // } |
| | | // } |
| | | // else |
| | | // { |
| | | // new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RemoveFailed), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnDel); |
| | | // } |
| | | |
| | | // } |
| | | // else |
| | | // { |
| | | // new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RemoveFailed), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnDel); |
| | | // } |
| | | // } |
| | | // }; |
| | | // }; |
| | | // #endregion |
| | | //} |
| | | /// <summary> |
| | | /// 用户id |
| | | /// <para>管理员10个,0~9,</para>
///<para>普通用户220个,10~234</para>
///<para>一次性用户10个,235~245</para>
///<para>临时密码密码10个,245~255,</para>
///<para>其中指纹100,密码100,卡56</para> |
| | | ///<para>门锁本地录入的密码、指纹、感应卡都有唯一对应的用户Id</para> |
| | | /// </summary> |
| | | public int UserID = -1; |
| | | /// <summary> |
| | | /// 开锁类型 |
| | | /// <para>常用:</para> |
| | | /// <para>0:Keypad(键盘/密码);3:RFID(射频卡);15:指纹</para> |
| | | /// <para>不常用: |
| | | /// <para>1:RF(Zigbee无线);2:Manual(手动);255:Indeterminate(不确定)</para> |
| | | /// </summary> |
| | | public int UnlockType; |
| | | /// <summary> |
| | | /// 关联账户的ID |
| | | /// </summary> |
| | | public string ConnectedAccount = string.Empty; |
| | | /// <summary> |
| | | /// 门锁用户名 |
| | | /// </summary> |
| | | public string UserName = string.Empty; |
| | | /// <summary> |
| | | /// 门锁录入的时 |
| | | /// </summary> |
| | | public DateTime EntryTime = System.DateTime.MinValue; |
| | | /// <summary>
|
| | | /// PrimaryId 门锁云端主 键(非更新字段,以下均为更新字段) -->键名 : PrimaryId默认值: null
|
| | | /// </summary>
|
| | | public string PrimaryId = ""; |
| | | } |
| | | } |
| | | } |