using System;
using System.Collections.Generic;
using System.Text;
namespace Shared.Phone.UserCenter.Safety
{
///
/// 新建用户密码的画面
///
public class PasswordAddNewForm : EditorCommonForm
{
#region ■ 变量声明___________________________
///
/// 密码改变事件
///
public Action PasswordChangedEvent = null;
///
/// 用户账号
///
private int pswNo = 0;
///
/// 第一个密码
///
private string firstPsw = string.Empty;
///
/// 密码输入控件
///
private PswNumberInputControl pswControl = null;
#endregion
#region ■ 初始化_____________________________
///
/// 画面显示(底层会固定调用此方法,借以完成画面创建)
///
/// 用户账号
/// 头部标题信息
public void ShowForm(int i_pswNo, string i_titleText)
{
this.pswNo = i_pswNo;
//设置头部信息
base.SetTitleText(i_titleText);
//初始化中部信息
this.InitMiddleFrame(i_titleText);
}
///
/// 初始化中部信息
///
/// 头部标题信息
private void InitMiddleFrame(string i_titleText)
{
//清空bodyFrame
this.ClearBodyFrame();
//请输入新安防密码
pswControl = new PswNumberInputControl(Language.StringByID(R.MyInternationalizationString.uPleaseInputNewSafetyPassword), 4);
pswControl.NumberIconBackColor = UserCenterColor.Current.White;
pswControl.Gravity = Gravity.CenterHorizontal;
pswControl.Y = Application.GetRealHeight(102);
bodyFrameLayout.AddChidren(pswControl);
pswControl.InitControl();
pswControl.FinishInputEvent += (pssword) =>
{
if (firstPsw != string.Empty)
{
//检测密码
string msg = this.CheckPassword(firstPsw, pssword);
if (msg != string.Empty)
{
//设置错误信息
pswControl.SetErrorMsg(msg);
return;
}
//执行修改用户密码
this.ChangedAdminPassword(firstPsw, i_titleText);
}
else
{
firstPsw = pssword;
//请重复输入新安防密码
pswControl.ResetControlInfo(Language.StringByID(R.MyInternationalizationString.uPleaseRepeatInputNewSafetyPassword));
}
};
}
#endregion
#region ■ 修改密码___________________________
///
/// 执行修改用户密码
///
/// 新密码
private async void ChangedAdminPassword(string pswValue1, string i_titleText)
{
//执行修改
bool result = await HdlSafeguardLogic.Current.ChangedUserPassword(this.pswNo, pswValue1, string.Empty);
if (result == false)
{
firstPsw = string.Empty;
//请输入新安防密码
pswControl.ResetControlInfo(Language.StringByID(R.MyInternationalizationString.uPleaseInputNewSafetyPassword));
return;
}
//安防密码设置成功
string msg = Language.StringByID(R.MyInternationalizationString.uSetSafetyPasswordSuccess);
this.ShowMassage(ShowMsgType.Tip, msg);
//界面直接关闭
this.CloseForm();
if (HdlFormLogic.Current.IsFormOpen("PasswordUserEditorForm") == false)
{
var form = new PasswordUserEditorForm();
form.AddForm(this.pswNo, pswValue1, i_titleText);
}
else
{
//回调函数
this.PasswordChangedEvent?.Invoke(pswValue1);
this.PasswordChangedEvent = null;
}
}
#endregion
#region ■ 一般方法___________________________
///
/// 密码检查,返回错误信息,无错误信息(空字符串)则表示成功
///
///
///
///
private string CheckPassword(string pswValue1, string pswValue2)
{
if (pswValue1 == string.Empty)
{
//请输入新密码
return Language.StringByID(R.MyInternationalizationString.uPleaseInputNewPassword);
}
if (pswValue2 == string.Empty)
{
//请输入确认密码
return Language.StringByID(R.MyInternationalizationString.PleaseInputConfirmPsw);
}
if (pswValue1 != pswValue2)
{
//两次输入的密码不一致
return Language.StringByID(R.MyInternationalizationString.SecondPswNotEqual1);
}
return string.Empty;
}
#endregion
}
}