using System;
|
using System.Linq.Expressions;
|
using Newtonsoft.Json.Linq;
|
using Shared.Common;
|
using ZigBee.Device;
|
|
namespace Shared.Phone.UserCenter.DoorLock
|
{
|
public class TemporaryPassword : DoorLockCommonLayout
|
{
|
/// <summary>
|
/// 构造函数
|
/// </summary>
|
/// <param name="doorLock"></param>
|
public TemporaryPassword(ZigBee.Device.DoorLock doorLock)
|
{
|
this.doorLock = doorLock;
|
BackgroundColor = Shared.Common.ZigbeeColor.Current.GXCTopViewBackgroundColor;
|
}
|
|
#region 变量申明
|
/// <summary>
|
/// 当前门锁
|
/// </summary>
|
ZigBee.Device.DoorLock doorLock;
|
/// <summary>
|
/// 临时密码中的6位数字
|
/// </summary>
|
public System.Collections.Generic.List<Button> pawButtonList = new System.Collections.Generic.List<Button> { };
|
/// <summary>
|
/// 临时密码
|
/// </summary>
|
Button passwordText;
|
/// <summary>
|
/// 中部布的顶部布局
|
/// </summary>
|
FrameLayout MidTopFrameLayout;
|
/// <summary>
|
/// 接收通知
|
/// </summary>
|
Action<string, string> action;
|
/// <summary>
|
/// 保存完成按钮
|
/// </summary>
|
Button btnFinifh;
|
/// <summary>
|
/// 当前有效日期时间
|
/// </summary>
|
DateTime cunVDateTime;
|
/// <summary>
|
/// 当前失效日期时间
|
/// </summary>
|
DateTime cunIVDateTime;
|
#endregion
|
|
/// <summary>
|
/// UI显示
|
/// </summary>
|
public void Show()
|
{
|
ReadTempPasswordData();
|
this.TopFrameLayout(this, Language.StringByID(R.MyInternationalizationString.TemporaryPassword));
|
|
EventHandler<MouseEventArgs> eHandlerBack = (sender, e) =>
|
{
|
if (doorLock.Gateway != null || doorLock.Gateway.GwResDataAction != null)
|
{
|
doorLock.Gateway.GwResDataAction -= action;
|
}
|
RemoveFromParent();
|
};
|
this.btnBack.MouseUpEventHandler += eHandlerBack;
|
this.btnBackFrameLayout.MouseUpEventHandler += eHandlerBack;
|
this.MidFrameLayout(this);
|
#region btnDelFrameLayout
|
var btnDelFrameLayout = new FrameLayout
|
{
|
X = Application.GetRealWidth(953 - 116),
|
Height = Application.GetRealHeight(69),
|
Width = Application.GetRealWidth(1080 - 953),
|
};
|
this.titleFrameLayout.AddChidren(btnDelFrameLayout);
|
|
var btnDelIcon = new Button
|
{
|
Height = Application.GetRealHeight(69),
|
Width = Application.GetRealWidth(69),
|
UnSelectedImagePath = "DoorLock/DelIcon.png",
|
};
|
btnDelFrameLayout.AddChidren(btnDelIcon);
|
|
EventHandler<MouseEventArgs> eHandler = (sender, e) =>
|
{
|
ClearDialog();
|
};
|
btnDelFrameLayout.MouseDownEventHandler += eHandler;
|
btnDelIcon.MouseDownEventHandler += eHandler;
|
#endregion
|
MidTopFrameLayout = new FrameLayout()
|
{
|
X = Application.GetRealWidth(181),
|
Y = Application.GetRealHeight(92),
|
Width = Application.GetRealWidth(717),
|
Height = Application.GetRealHeight(570),
|
BackgroundImagePath = "DoorLock/TempPasswordBackground.png",
|
};
|
this.midFrameLayout.AddChidren(MidTopFrameLayout);
|
MidFrameLayoutContent();
|
}
|
|
/// <summary>
|
/// 中部布局
|
/// </summary>
|
public void MidFrameLayoutContent()
|
{
|
MidTopFrameLayout.RemoveAll();
|
var TempPasswordBackground1 = new Button()
|
{
|
Height = Application.GetRealHeight(43),
|
Width = Application.GetRealWidth(259),
|
X = Application.GetRealWidth(230),
|
Y = Application.GetRealHeight(418),
|
UnSelectedImagePath = "DoorLock/TempPasswordBackground1.png",
|
};
|
MidTopFrameLayout.AddChidren(TempPasswordBackground1);
|
|
var topMidTopFrameLayout = new FrameLayout()
|
{
|
Height = Application.GetRealHeight(313),
|
};
|
MidTopFrameLayout.AddChidren(topMidTopFrameLayout);
|
|
var topPic = new Button()
|
{
|
Height = Application.GetRealHeight(81),
|
Y = Application.GetRealHeight(48),
|
TextAlignment = TextAlignment.Center,
|
Text = Language.StringByID(R.MyInternationalizationString.ClickGenerate),
|
TextColor = Shared.Common.ZigbeeColor.Current.XMBlack,
|
TextSize = 12,
|
Visible = true,
|
Enable = true,
|
};
|
topMidTopFrameLayout.AddChidren(topPic);
|
|
var randomPassword = new EditText()
|
{
|
Y = Application.GetRealHeight(153),
|
Height = Application.GetRealHeight(84),
|
TextAlignment = TextAlignment.Center,
|
TextSize = 24,
|
SecureTextEntry = false,
|
Enable = false,
|
};
|
topMidTopFrameLayout.AddChidren(randomPassword);
|
|
var temPasswordVisiable = new Button()
|
{
|
Height = Application.GetRealHeight(92),
|
Width = Application.GetRealWidth(92),
|
X = Application.GetRealWidth(495),
|
Y = Application.GetRealHeight(153),
|
UnSelectedImagePath = "DoorLock/TemPasswordInvisiable.png",
|
SelectedImagePath = "DoorLock/TemPasswordVisiable.png",
|
};
|
topMidTopFrameLayout.AddChidren(temPasswordVisiable);
|
|
var validTime = new Button()
|
{
|
Height = Application.GetRealHeight(55),
|
Width = Application.GetRealWidth(92 + 115),
|
Y = Application.GetRealHeight(386),
|
TextColor = Shared.Common.ZigbeeColor.Current.XMGray2,
|
TextAlignment = TextAlignment.CenterRight,
|
TextSize = 16,
|
Text = "--:--",
|
};
|
MidTopFrameLayout.AddChidren(validTime);
|
|
var validTimeDate = new Button()
|
{
|
Height = Application.GetRealHeight(49),
|
Width = Application.GetRealWidth(84 + 135),
|
Y = Application.GetRealHeight(441),
|
TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
|
TextSize = 12,
|
TextAlignment = TextAlignment.CenterRight,
|
};
|
MidTopFrameLayout.AddChidren(validTimeDate);
|
|
var inValidTime = new Button()
|
{
|
Height = Application.GetRealHeight(55),
|
Width = Application.GetRealWidth(717 - 507),
|
X = Application.GetRealWidth(507),
|
Y = Application.GetRealHeight(389),
|
TextColor = Shared.Common.ZigbeeColor.Current.XMGray2,
|
TextAlignment = TextAlignment.CenterLeft,
|
TextSize = 16,
|
Text = "--:--",
|
};
|
MidTopFrameLayout.AddChidren(inValidTime);
|
|
var inValidTimeDate = new Button()
|
{
|
Height = Application.GetRealHeight(49),
|
Width = Application.GetRealWidth(717 - 508),
|
X = Application.GetRealWidth(508),
|
Y = Application.GetRealHeight(444),
|
TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
|
TextAlignment = TextAlignment.CenterLeft,
|
TextSize = 12,
|
};
|
MidTopFrameLayout.AddChidren(inValidTimeDate);
|
|
BottomFrameLayoutContent();
|
|
#region 数据处理
|
TimeDisplay(validTime, validTimeDate, inValidTime, inValidTimeDate, false);
|
if (Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.IsModify)
|
{
|
btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
|
btnFinifh.Enable = true;
|
topPic.Visible = true;
|
topPic.Enable = true;
|
}
|
else
|
{
|
btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect;
|
btnFinifh.Enable = false;
|
topPic.Visible = false;
|
topPic.Enable = false;
|
}
|
if (string.IsNullOrEmpty(doorLock.LocalTempPassword))
|
{
|
randomPassword.Text = "- - - - - -";
|
temPasswordVisiable.Visible = false;
|
randomPassword.TextColor = Shared.Common.ZigbeeColor.Current.XMGray4;
|
Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.IsModify = true;
|
topPic.Visible = true;
|
topPic.Enable = true;
|
}
|
else
|
{
|
randomPassword.Text = doorLock.LocalTempPassword;
|
temPasswordVisiable.Visible = true;
|
if (Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InTempPasswordVisiable)
|
{
|
randomPassword.SecureTextEntry = false;
|
temPasswordVisiable.IsSelected = true;
|
randomPassword.TextColor = Shared.Common.ZigbeeColor.Current.XMOrange;
|
}
|
else
|
{
|
randomPassword.SecureTextEntry = true;
|
temPasswordVisiable.IsSelected = false;
|
randomPassword.TextColor = Shared.Common.ZigbeeColor.Current.XMGray4;
|
}
|
}
|
|
temPasswordVisiable.MouseUpEventHandler += (sender, e) =>
|
{
|
temPasswordVisiable.IsSelected = !temPasswordVisiable.IsSelected;
|
if (!temPasswordVisiable.IsSelected)
|
{
|
randomPassword.TextColor = Shared.Common.ZigbeeColor.Current.XMGray4;
|
randomPassword.SecureTextEntry = true;
|
}
|
else
|
{
|
randomPassword.TextColor = Shared.Common.ZigbeeColor.Current.XMOrange;
|
randomPassword.SecureTextEntry = false;
|
}
|
Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InTempPasswordVisiable = !randomPassword.SecureTextEntry;
|
};
|
topPic.MouseUpEventHandler += (sender, e) =>
|
{
|
randomPassword.Text = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetTempPassword();
|
doorLock.LocalTempPassword = randomPassword.Text;
|
TimeDisplay(validTime, validTimeDate, inValidTime, inValidTimeDate, true);
|
btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;//XMUnSelect
|
btnFinifh.Enable = true;
|
Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.IsModify = true;
|
randomPassword.SecureTextEntry = false;
|
temPasswordVisiable.IsSelected = true;
|
Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InTempPasswordVisiable = true;
|
randomPassword.TextColor = Shared.Common.ZigbeeColor.Current.XMOrange;
|
};
|
#endregion
|
}
|
/// <summary>
|
/// 底部布局处理
|
/// </summary>
|
public void BottomFrameLayoutContent()
|
{
|
var bottomFrameLayout = new FrameLayout()
|
{
|
Height = Application.GetRealHeight(1025),
|
Y = Application.GetRealHeight(711),
|
BackgroundColor = ZigbeeColor.Current.XMWhite,
|
};
|
this.midFrameLayout.AddChidren(bottomFrameLayout);
|
bottomFrameLayout.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight);
|
|
var informationEdit = new Button()
|
{
|
Height = Application.GetRealHeight(60),
|
X = Application.GetRealWidth(58),
|
Y = Application.GetRealHeight(81),
|
Text = Language.StringByID(R.MyInternationalizationString.InformationEdit),
|
TextColor = Shared.Common.ZigbeeColor.Current.XMBlack,
|
TextAlignment = TextAlignment.CenterLeft,
|
TextSize = 15,
|
};
|
bottomFrameLayout.AddChidren(informationEdit);
|
|
for (int i = 0; i < 2; i++)
|
{
|
var btnValidTime = new Button()
|
{
|
Width = Application.GetRealWidth(453),
|
Height = Application.GetRealHeight(58),
|
X = Application.GetRealWidth(58),
|
Text = Language.StringByID(R.MyInternationalizationString.ValidTime),
|
TextColor = Shared.Common.ZigbeeColor.Current.XMBlack,
|
TextAlignment = TextAlignment.CenterLeft,
|
TextSize = 14,
|
};
|
bottomFrameLayout.AddChidren(btnValidTime);
|
|
var btnModifyText = new Button()
|
{
|
Width = Application.GetRealWidth(448),
|
Height = Application.GetRealHeight(58),
|
X = btnValidTime.Right,
|
Text = Language.StringByID(R.MyInternationalizationString.Modify),
|
TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
|
TextAlignment = TextAlignment.CenterRight,
|
TextSize = 14,
|
};
|
bottomFrameLayout.AddChidren(btnModifyText);
|
|
var btnNextFrameLayout = new FrameLayout()
|
{
|
Width = Application.GetRealWidth(58 * 2),
|
Height = Application.GetRealHeight(58),
|
X = Application.GetRealWidth(956),
|
Y = Application.GetRealHeight(204),
|
};
|
bottomFrameLayout.AddChidren(btnNextFrameLayout);
|
|
var btnNext = new Button()
|
{
|
Width = Application.GetRealWidth(58),
|
Height = Application.GetRealHeight(58),
|
UnSelectedImagePath = "Item/RightNext.png",
|
SelectedImagePath = "Item/Down.png",
|
};
|
btnNextFrameLayout.AddChidren(btnNext);
|
|
var btnLine = new FrameLayout()
|
{
|
Width = Application.GetRealWidth(965),
|
Height = 1,
|
X = Application.GetRealWidth(58),
|
BackgroundColor = Shared.Common.ZigbeeColor.Current.XMRowLine,
|
};
|
bottomFrameLayout.AddChidren(btnLine);
|
|
if (i == 0)
|
{
|
btnValidTime.Y = Application.GetRealHeight(204);
|
btnValidTime.Text = Language.StringByID(R.MyInternationalizationString.ValidTime);
|
btnModifyText.Y = btnNextFrameLayout.Y = btnValidTime.Y;
|
btnLine.Y = Application.GetRealHeight(308);
|
}
|
else if (i == 1)
|
{
|
btnValidTime.Y = Application.GetRealHeight(343);
|
btnValidTime.Text = Language.StringByID(R.MyInternationalizationString.InValidTime);
|
btnModifyText.Y = btnNextFrameLayout.Y = btnValidTime.Y;
|
btnLine.Y = Application.GetRealHeight(446);
|
}
|
int curIndex = i;
|
EventHandler<MouseEventArgs> hander = (sender, e) =>
|
{
|
if (Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.IsModify)
|
{
|
if (curIndex == 0)
|
{
|
if (string.IsNullOrEmpty(doorLock.LocalTempPassword))
|
{
|
//请"点击生成"临时密码;
|
Application.RunOnMainThread(() =>
|
{
|
var mess = Language.StringByID(R.MyInternationalizationString.SetTempPasswordTip1);
|
ShowMassage(ShowMsgType.Tip, mess);
|
|
});
|
return;
|
}
|
var tempPage = new Shared.Phone.UserCenter.DoorLock.TimeSettignPage(doorLock, "ValidTime");
|
Shared.Phone.UserView.HomePage.Instance.AddChidren(tempPage);
|
Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
|
tempPage.Show();
|
tempPage.timeSetAction += () =>
|
{
|
MidFrameLayoutContent();
|
};
|
}
|
if (curIndex == 1)
|
{
|
if (string.IsNullOrEmpty(doorLock.LocalTempPassword))
|
{
|
//请"点击生成"临时密码;
|
Application.RunOnMainThread(() =>
|
{
|
var mess = Language.StringByID(R.MyInternationalizationString.SetTempPasswordTip1);
|
this.ShowMassage(ShowMsgType.Tip, mess);
|
});
|
return;
|
}
|
var tempPage = new Shared.Phone.UserCenter.DoorLock.TimeSettignPage(doorLock, "InValidTime");
|
Shared.Phone.UserView.HomePage.Instance.AddChidren(tempPage);
|
Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
|
tempPage.Show();
|
tempPage.timeSetAction += () =>
|
{
|
MidFrameLayoutContent();
|
};
|
}
|
}
|
};
|
btnValidTime.MouseDownEventHandler += hander;
|
btnModifyText.MouseDownEventHandler += hander;
|
btnNextFrameLayout.MouseDownEventHandler += hander;
|
btnNext.MouseDownEventHandler += hander;
|
}
|
|
var modifyTempPasswordTip1 = new Button()
|
{
|
Height = Application.GetRealHeight(49),
|
Y = Application.GetRealHeight(628),
|
TextID = R.MyInternationalizationString.ModifyTempPasswordTip1,
|
TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
|
TextSize = 12,
|
TextAlignment = TextAlignment.Center,
|
};
|
bottomFrameLayout.AddChidren(modifyTempPasswordTip1);
|
|
var modifyTempPasswordTip2 = new Button()
|
{
|
Height = Application.GetRealHeight(49),
|
Y = modifyTempPasswordTip1.Bottom,
|
Radius = (uint)Application.GetRealHeight(120) / 2,
|
TextID = R.MyInternationalizationString.ModifyTempPasswordTip2,
|
TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
|
TextSize = 12,
|
TextAlignment = TextAlignment.Center,
|
};
|
bottomFrameLayout.AddChidren(modifyTempPasswordTip2);
|
|
btnFinifh = new Button()
|
{
|
Width = Application.GetRealWidth(907),
|
Height = Application.GetRealHeight(127),
|
X = Application.GetRealWidth(86),
|
Y = Application.GetRealHeight(760),
|
Radius = (uint)Application.GetRealHeight(120) / 2,
|
TextID = R.MyInternationalizationString.Confrim,
|
BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect,
|
TextColor = Shared.Common.ZigbeeColor.Current.XMWhite,
|
TextSize = 16,
|
IsBold = true,
|
Enable = false,
|
};
|
bottomFrameLayout.AddChidren(btnFinifh);
|
|
btnFinifh.MouseUpEventHandler += async (sender, e) =>
|
{
|
FinifhEventHandler(btnFinifh);
|
};
|
}
|
|
/// <summary>
|
/// 确定事件处理
|
/// </summary>
|
/// <param name="btnFinifh"></param>
|
void FinifhEventHandler(Button btnFinifh)
|
{
|
System.Threading.Tasks.Task.Run(async () =>
|
{
|
Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); });
|
try
|
{
|
if (string.IsNullOrEmpty(doorLock.LocalTempPassword))
|
{
|
//请"点击生成"临时密码;
|
Application.RunOnMainThread(() =>
|
{
|
var mess = Language.StringByID(R.MyInternationalizationString.SetTempPasswordTip1);
|
this.ShowMassage(ShowMsgType.Tip, mess);
|
});
|
return;
|
}
|
|
var dNow = DateTime.Now;
|
var validDateTime = new DateTime(dNow.Year, Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMonth, Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateDay, Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateHour, Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMinute - 1, dNow.Second);
|
var inValidDateTime = new DateTime(dNow.Year, Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateMonth, Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateDay, Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateHour, Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateMinute, dNow.Second);
|
if (DateTime.Compare(inValidDateTime, validDateTime) < 0)
|
{
|
//无效的时间设置
|
Application.RunOnMainThread(() =>
|
{
|
var mess = Language.StringByID(R.MyInternationalizationString.SetTempPasswordTip);
|
this.ShowMassage(ShowMsgType.Tip, mess);
|
});
|
return;
|
}
|
|
var startTimeStr = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetUnixTimeStamp(validDateTime);
|
var endTimeStr = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetUnixTimeStamp(inValidDateTime);
|
|
action = (topic, data) =>
|
{
|
var gatewayID = topic.Split('/')[0];
|
var jObjectdata = JObject.Parse(data);
|
if (jObjectdata == null)
|
{
|
return;
|
}
|
if (topic == $"{gatewayID}/DoorLock/DoorLockProgrammingEventNotificationCommand")
|
{
|
var ProgrammingEventNotificationData = Newtonsoft.Json.JsonConvert.DeserializeObject<ZigBee.Device.DoorLock.DoorLockProgrammingEventNotificationCommand>(jObjectdata["Data"].ToString());
|
{
|
doorLock.doorLockProgrammingEventNotificationCommand = ProgrammingEventNotificationData;
|
var localDoorLockObj = new ZigBee.Device.DoorLock.LocaDoorLockObj() { };
|
localDoorLockObj.UserID = ProgrammingEventNotificationData.UserID;
|
localDoorLockObj.UnlockType = ProgrammingEventNotificationData.ProgramEventSoure;
|
var entryTime = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetLocalTime(ProgrammingEventNotificationData.ZigbeeLocalTime);
|
localDoorLockObj.EntryTime = entryTime;
|
if (!doorLock.localDoorLockUserList.ContainsKey(localDoorLockObj.UserID))
|
{
|
doorLock.localDoorLockUserList.Add(ProgrammingEventNotificationData.UserID, localDoorLockObj);
|
}
|
//临时密码数据存储处理
|
if (ProgrammingEventNotificationData.UserID > 245)
|
{
|
var tpObj = new ZigBee.Device.DoorLock.TempPasswordObject();
|
tpObj.UserId = ProgrammingEventNotificationData.UserID;
|
tpObj.TempPassword = doorLock.LocalTempPassword;
|
tpObj.ValidTime = validDateTime;
|
tpObj.InValidTime = inValidDateTime;
|
doorLock.tempPasswordObject = tpObj;
|
}
|
}
|
}
|
};
|
if (doorLock.Gateway != null || doorLock.Gateway.GwResDataAction != null)
|
{
|
doorLock.Gateway.GwResDataAction += action;
|
}
|
//设置临时密码到门锁
|
var addOrModifyResult = await doorLock.TempPasswordAsync(doorLock.LocalTempPassword, validDateTime, inValidDateTime);
|
if (addOrModifyResult != null && addOrModifyResult.responseData != null)
|
{
|
if (addOrModifyResult.responseData.status == 0)
|
{
|
System.Threading.Thread.Sleep(1000);
|
if (doorLock.tempPasswordObject != null)
|
{
|
var addDoorLockTempPasswordData = new ZigBee.Device.DoorLock.AddDoorLockTempPasswordData();
|
if (HdlUserCenterResourse.ResidenceOption.AuthorityNo != 1)
|
{
|
//☆マーク☆
|
//addDoorLockTempPasswordData.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
|
addDoorLockTempPasswordData.IsOtherAccountCtrl = true;
|
}
|
//对密码进行加密处理
|
string hdlKey = "hD1(La3o";
|
var enPsw = HdlCommonLogic.Current.EncryptPassword(hdlKey, doorLock.tempPasswordObject.TempPassword);
|
addDoorLockTempPasswordData.TempPwd = enPsw;
|
if (doorLock.DeviceAddr != null)
|
{
|
addDoorLockTempPasswordData.LocalDoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
|
}
|
addDoorLockTempPasswordData.ValidBeginTime = doorLock.tempPasswordObject.ValidTime;
|
addDoorLockTempPasswordData.ValidEndTime = doorLock.tempPasswordObject.InValidTime;
|
addDoorLockTempPasswordData.TempPwdId = doorLock.tempPasswordObject.UserId.ToString();
|
//存到云
|
var result1 = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/AddDoorLockPwd", addDoorLockTempPasswordData);
|
if (result1 == null)
|
{
|
Application.RunOnMainThread(() =>
|
{
|
var mess = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime);
|
this.ShowMassage(ShowMsgType.Tip, mess);
|
});
|
return;
|
}
|
if (result1.Code != HttpMessageEnum.A成功)
|
{
|
Application.RunOnMainThread(() =>
|
{
|
var mess = Language.StringByID(R.MyInternationalizationString.SetFailedXm1);
|
this.ShowMassage(ShowMsgType.Tip, mess);
|
});
|
return;
|
}
|
Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.IsModify = false;
|
doorLock.LocalTempPassword = doorLock.tempPasswordObject.TempPassword;
|
TimeDateData(doorLock.tempPasswordObject.ValidTime, doorLock.tempPasswordObject.InValidTime);
|
}
|
else
|
{
|
Application.RunOnMainThread(() =>
|
{
|
var mess = Language.StringByID(R.MyInternationalizationString.SetFailedXm);
|
this.ShowMassage(ShowMsgType.Tip, mess);
|
});
|
return;
|
}
|
}
|
else
|
{
|
Application.RunOnMainThread(() =>
|
{
|
var mess = Language.StringByID(R.MyInternationalizationString.SetFailedXm);
|
this.ShowMassage(ShowMsgType.Tip, mess);
|
});
|
return;
|
}
|
}
|
else
|
{
|
Application.RunOnMainThread(() =>
|
{
|
var mess = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime);
|
this.ShowMassage(ShowMsgType.Tip, mess);
|
});
|
return;
|
}
|
}
|
catch (Exception ex)
|
{
|
var mess = ex.Message;
|
}
|
finally
|
{
|
Application.RunOnMainThread(() =>
|
{
|
MidFrameLayoutContent();
|
CommonPage.Loading.Hide();
|
});
|
}
|
});
|
}
|
|
/// <summary>
|
/// 清除UI
|
/// </summary>
|
void ClearDialog()
|
{
|
var dialog = new Dialog { };
|
dialog.Show();
|
|
var flMain = new FrameLayout { BackgroundColor = 0x00000000 };
|
dialog.AddChidren(flMain);
|
flMain.MouseUpEventHandler += (sender11, e11) =>
|
{
|
dialog.Close();
|
};
|
|
var delBackgroundFrameLayout = new FrameLayout
|
{
|
X = Application.GetRealWidth(596),
|
Y = Application.GetRealHeight(164),
|
Height = Application.GetRealHeight(173),
|
Width = Application.GetRealWidth(449),
|
BackgroundImagePath = "DoorLock/DelBackground.png",
|
};
|
flMain.AddChidren(delBackgroundFrameLayout);
|
|
var btnDelIcon2 = new Button
|
{
|
Height = Application.GetRealHeight(81),
|
Width = Application.GetRealWidth(81),
|
X = Application.GetRealWidth(81),
|
Y = Application.GetRealHeight(55),
|
UnSelectedImagePath = "DoorLock/DelIcon.png",
|
};
|
delBackgroundFrameLayout.AddChidren(btnDelIcon2);
|
|
var btnDelText = new Button
|
{
|
Height = Application.GetRealHeight(58),
|
Width = Application.GetRealWidth(311),
|
X = Application.GetRealWidth(173),
|
Y = Application.GetRealHeight(69),
|
TextAlignment = TextAlignment.CenterLeft,
|
Text = Language.StringByID(R.MyInternationalizationString.ClearTempPassword),
|
TextColor = Shared.Common.ZigbeeColor.Current.XMTopTitleText,
|
TextSize = 14,
|
IsBold = true,
|
};
|
delBackgroundFrameLayout.AddChidren(btnDelText);
|
|
EventHandler<MouseEventArgs> eHandler2 = (sender2, e2) =>
|
{
|
dialog.Close();
|
string msg = Language.StringByID(R.MyInternationalizationString.SureToDeleteTempPassword);
|
var alert = new ShowMsgControl(ShowMsgType.Confirm, msg, Language.StringByID(R.MyInternationalizationString.DoorlockConfirm));
|
alert.Show();
|
//使用确认型弹框时,的回调函数
|
alert.ConfirmClickEvent += () =>
|
{
|
ClearEventHandler(btnDelText);
|
};
|
};
|
delBackgroundFrameLayout.MouseDownEventHandler += eHandler2;
|
btnDelIcon2.MouseDownEventHandler += eHandler2;
|
btnDelText.MouseDownEventHandler += eHandler2;
|
}
|
|
/// <summary>
|
/// 清除事件处理
|
/// </summary>
|
/// <param name="btnDelText"></param>
|
async void ClearEventHandler(Button btnDelText = null)
|
{
|
if (btnDelText == null)
|
{
|
btnDelText = new Button();
|
}
|
Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); });
|
try
|
{
|
if (doorLock.tempPasswordObject != null)
|
{
|
var passData = doorLock.SetUserAccessData(doorLock.tempPasswordObject.UserId, ZigBee.Device.DoorLock.AccessType.DelCurrentUser);
|
var resultData = await doorLock.DefaultControlAsync(passData);
|
if (resultData != null && resultData.defaultControlResponseData != null)
|
{
|
if (resultData.defaultControlResponseData.status == 0 || resultData.defaultControlResponseData.status == 2)
|
{
|
var delDoorLockTempPasswordData = new ZigBee.Device.DoorLock.DelDoorLockTempPasswordData();
|
if (HdlUserCenterResourse.ResidenceOption.AuthorityNo != 1)
|
{
|
//☆マーク☆
|
//delDoorLockTempPasswordData.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
|
delDoorLockTempPasswordData.IsOtherAccountCtrl = true;
|
}
|
if (doorLock.DeviceAddr != null)
|
{
|
delDoorLockTempPasswordData.LocalDoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
|
}
|
var result1 = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/DelDoorLockPwd", delDoorLockTempPasswordData);
|
if (result1 != null)
|
{
|
if (result1.Code == HttpMessageEnum.A成功)
|
{
|
doorLock.tempPasswordObject = null;
|
doorLock.LocalTempPassword = "";
|
TimeDateData(DateTime.Now, DateTime.Now, true);
|
Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InTempPasswordVisiable = false;
|
Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.IsModify = true;
|
}
|
else
|
{
|
Application.RunOnMainThread(() =>
|
{
|
var mess = Language.StringByID(R.MyInternationalizationString.ClearFailedXm1);
|
this.ShowMassage(ShowMsgType.Tip, mess);
|
});
|
}
|
}
|
else
|
{
|
Application.RunOnMainThread(() =>
|
{
|
var mess = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime);
|
this.ShowMassage(ShowMsgType.Tip, mess);
|
});
|
}
|
}
|
else
|
{
|
Application.RunOnMainThread(() =>
|
{
|
var mess = Language.StringByID(R.MyInternationalizationString.ClearFailedXm1);
|
this.ShowMassage(ShowMsgType.Tip, mess);
|
});
|
}
|
}
|
else
|
{
|
var mess = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime);
|
this.ShowMassage(ShowMsgType.Tip, mess);
|
}
|
}
|
}
|
catch { }
|
finally
|
{
|
Application.RunOnMainThread(() =>
|
{
|
|
MidFrameLayoutContent();
|
CommonPage.Loading.Hide();
|
});
|
}
|
}
|
|
/// <summary>
|
/// 读取云端存储数据
|
/// </summary>
|
void ReadTempPasswordData()
|
{
|
System.Threading.Tasks.Task.Run(async () =>
|
{
|
Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); });
|
try
|
{
|
var getDoorLockTempPasswordData = new ZigBee.Device.DoorLock.GetDoorLockTempPasswordData();
|
if (HdlUserCenterResourse.ResidenceOption.AuthorityNo != 1)
|
{
|
//☆マーク☆
|
//getDoorLockTempPasswordData.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
|
getDoorLockTempPasswordData.IsOtherAccountCtrl = true;
|
}
|
if (doorLock.DeviceAddr != null)
|
{
|
getDoorLockTempPasswordData.LocalDoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
|
}
|
var result = await ZigBee.Device.DoorLock.GetDoorLockTempPasswordFromServer("DoorLock/GetDoorLockPwdPagger", getDoorLockTempPasswordData);
|
if (result != null)
|
{
|
if (result.PageData.Count != 0)
|
{
|
foreach (var curDoorLockTempPaw in result.PageData)
|
{
|
var tpObj = new ZigBee.Device.DoorLock.TempPasswordObject();
|
tpObj.UserId = int.Parse(curDoorLockTempPaw.TempPwdId);
|
tpObj.ValidTime = curDoorLockTempPaw.ValidBeginTime;
|
tpObj.InValidTime = curDoorLockTempPaw.ValidEndTime;
|
//解密密码
|
string hdlKey = "hD1(La3o";
|
var desPsw = HdlCommonLogic.Current.DecryptPassword(hdlKey, curDoorLockTempPaw.TempPwd);
|
doorLock.LocalTempPassword = tpObj.TempPassword = desPsw;
|
doorLock.tempPasswordObject = tpObj;
|
TimeDateData(doorLock.tempPasswordObject.ValidTime, doorLock.tempPasswordObject.InValidTime);
|
}
|
}
|
else
|
{
|
doorLock.tempPasswordObject = null;
|
doorLock.LocalTempPassword = "";
|
TimeDateData(DateTime.Now, DateTime.Now, true);
|
Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InTempPasswordVisiable = false;
|
Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.IsModify = true;
|
}
|
}
|
else
|
{
|
var mess = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime);
|
this.ShowMassage(ShowMsgType.Tip, mess);
|
}
|
}
|
catch { }
|
finally
|
{
|
Application.RunOnMainThread(() =>
|
{
|
MidFrameLayoutContent();
|
CommonPage.Loading.Hide();
|
});
|
}
|
});
|
}
|
|
/// <summary>
|
/// 本地时间数据处理
|
/// </summary>
|
/// <param name="validTimeDateTime"></param>
|
/// <param name="inValidTime"></param>
|
/// <param name="isClearLocalTime"></param>
|
void TimeDateData(DateTime validTimeDateTime, DateTime inValidTime, bool isClearLocalTime = false)
|
{
|
if (doorLock.tempPasswordObject != null)
|
{
|
Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateHour = validTimeDateTime.Hour;
|
Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMinute = validTimeDateTime.Minute;
|
Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateSecond = validTimeDateTime.Second;
|
Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateYear = validTimeDateTime.Year;
|
Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMonth = validTimeDateTime.Month;
|
Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateDay = validTimeDateTime.Day;
|
Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateHour = inValidTime.Hour;
|
Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateMinute = inValidTime.Minute;
|
Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateSecond = inValidTime.Second;
|
Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateYear = inValidTime.Year;
|
Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateMonth = inValidTime.Month;
|
Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateDay = inValidTime.Day;
|
}
|
if (isClearLocalTime)
|
{
|
Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateHour = 100;
|
Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMinute = 100;
|
Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateSecond = 0;
|
Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateYear = 0;
|
Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMonth = 0;
|
Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateDay = 0;
|
Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateHour = 100;
|
Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateMinute = 100;
|
Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateSecond = 0;
|
Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateYear = 0;
|
Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateMonth = 0;
|
Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateDay = 0;
|
}
|
}
|
|
/// <summary>
|
/// 时间显示数据处理
|
/// </summary>
|
/// <param name="validTime"></param>
|
/// <param name="validTimeDate"></param>
|
/// <param name="inValidTime"></param>
|
/// <param name="inValidTimeDate"></param>
|
/// <param name="isDefaultTime"></param>
|
void TimeDisplay(Button validTime, Button validTimeDate, Button inValidTime, Button inValidTimeDate, bool isDefaultTime)
|
{
|
string hour = "";
|
string minute = "";
|
if (isDefaultTime)
|
{
|
var cur = DateTime.Now;
|
DoorLockCommonInfo.ValidDateHour = cur.Hour;
|
DoorLockCommonInfo.ValidDateMinute = cur.Minute;
|
DoorLockCommonInfo.ValidDateSecond = cur.Second;
|
DoorLockCommonInfo.InValidDateHour = cur.Hour;
|
DoorLockCommonInfo.InValidDateMinute = cur.Minute;
|
DoorLockCommonInfo.InValidDateSecond = cur.Second;
|
DoorLockCommonInfo.ValidDateYear = cur.Year;
|
DoorLockCommonInfo.ValidDateMonth = cur.Month;
|
DoorLockCommonInfo.ValidDateDay = cur.Day;
|
|
var curD = DoorLockCommonInfo.LastDayOfMonth(cur);
|
if (DoorLockCommonInfo.ValidDateDay == curD.Day)
|
{
|
if (DoorLockCommonInfo.ValidDateMonth == 12)
|
{
|
DoorLockCommonInfo.InValidDateYear = cur.Year + 1;
|
DoorLockCommonInfo.InValidDateMonth = 1;
|
DoorLockCommonInfo.InValidDateDay = 1;
|
}
|
else
|
{
|
DoorLockCommonInfo.InValidDateYear = cur.Year;
|
DoorLockCommonInfo.InValidDateMonth = cur.Month + 1;
|
DoorLockCommonInfo.InValidDateDay = 1;
|
}
|
}
|
else
|
{
|
DoorLockCommonInfo.InValidDateYear = cur.Year;
|
DoorLockCommonInfo.InValidDateMonth = cur.Month;
|
DoorLockCommonInfo.InValidDateDay = cur.Day + 1;
|
}
|
|
//doorLock.ReSave();
|
}
|
if (Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateHour < 10)
|
{
|
hour = "0" + Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateHour;
|
}
|
else
|
{
|
hour = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateHour.ToString();
|
}
|
if (Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMinute < 10)
|
{
|
minute = "0" + Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMinute;
|
}
|
else
|
{
|
minute = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMinute.ToString();
|
}
|
//有效时间
|
if (Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateHour == 100)
|
{
|
validTime.Text = "--:--";
|
}
|
else
|
{
|
validTime.Text = hour + ":" + minute;
|
}
|
|
if (Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateHour < 10)
|
{
|
hour = "0" + Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateHour;
|
}
|
else
|
{
|
hour = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateHour.ToString();
|
}
|
if (Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateMinute < 10)
|
{
|
minute = "0" + Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateMinute;
|
}
|
else
|
{
|
minute = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateMinute.ToString();
|
}
|
|
if (Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateHour == 100)
|
{
|
inValidTime.Text = "--:--";
|
}
|
else
|
{
|
inValidTime.Text = hour + ":" + minute;
|
}
|
|
if (Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMonth == 0)
|
{
|
validTimeDate.Text = "-" + Language.StringByID(R.MyInternationalizationString.Month) + "-" + Language.StringByID(R.MyInternationalizationString.Day);
|
}
|
else
|
{
|
validTimeDate.Text = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMonth + Language.StringByID(R.MyInternationalizationString.Month) + Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateDay + Language.StringByID(R.MyInternationalizationString.Day);
|
}
|
|
if (Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateMonth == 0)
|
{
|
inValidTimeDate.Text = "-" + Language.StringByID(R.MyInternationalizationString.Month) + "-" + Language.StringByID(R.MyInternationalizationString.Day);
|
}
|
else
|
{
|
inValidTimeDate.Text = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateMonth + Language.StringByID(R.MyInternationalizationString.Month) + Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateDay + Language.StringByID(R.MyInternationalizationString.Day);
|
}
|
}
|
}
|
}
|