using System;
using System.Collections.Generic;
using System.Text;
namespace Shared.Phone.UserCenter.Safety
{
///
/// 修改用户密码的画面
///
public class EdtiorUserPasswordForm : EditorCommonForm
{
#region ■ 变量声明___________________________
///
/// 用户账号
///
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();
}
///
/// 初始化中部信息
///
private void InitMiddleFrame()
{
//清空bodyFrame
this.ClearBodyFrame();
//请输入新安防密码
pswControl = new PswNumberInputControl(Language.StringByID(R.MyInternationalizationString.uPleaseInputNewSafetyPassword), 4);
bodyFrameLayout.AddChidren(pswControl);
pswControl.InitControl();
pswControl.FinishInputEvent += (pssword) =>
{
if (firstPsw != string.Empty)
{
//检测密码
string msg = this.CheckPassword(firstPsw, pssword);
if (msg != string.Empty)
{
//请重复输入新安防密码
pswControl.ResetControlInfo(Language.StringByID(R.MyInternationalizationString.uPleaseRepeatInputNewSafetyPassword));
//设置错误信息
pswControl.SetErrorMsg(msg);
return;
}
//执行修改用户密码
this.ChangedAdminPassword(firstPsw, pssword);
}
else
{
firstPsw = pssword;
//请重复输入新安防密码
pswControl.ResetControlInfo(Language.StringByID(R.MyInternationalizationString.uPleaseRepeatInputNewSafetyPassword));
}
};
}
#endregion
#region ■ 修改密码___________________________
///
/// 执行修改用户密码
///
/// 新密码
/// 确认密码
private async void ChangedAdminPassword(string pswValue1, string pswValue2)
{
//执行修改
bool result = await HdlSafeguardLogic.Current.ChangedUserPassword(this.pswNo, pswValue1);
if (result == false)
{
firstPsw = string.Empty;
//请输入新安防密码
pswControl.ResetControlInfo(Language.StringByID(R.MyInternationalizationString.uPleaseInputNewSafetyPassword));
return;
}
//用户密码已更新
string msg = Language.StringByID(R.MyInternationalizationString.uUserPasswordRefreshMsg);
this.ShowMassage(ShowMsgType.Tip, msg);
//界面直接关闭(暂时)
this.CloseForm();
}
#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
}
}