using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
namespace Shared.Phone.UserCenter.Safety
{
///
/// 重置管理员密码界面
///
public class ResetAdminPasswordForm : UserCenterCommonForm
{
#region ■ 变量声明___________________________
#endregion
#region ■ 初始化_____________________________
///
/// 画面显示(底层会固定调用此方法,借以完成画面创建)
///
public void ShowForm()
{
//设置头部信息
base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uResetAdministratorPsw));
//初始化中部信息
this.InitMiddleFrame();
}
///
/// 初始化中部信息
///
private void InitMiddleFrame()
{
bodyFrameLayout.RemoveAll();
//新密码
var placeholderText = Language.StringByID(R.MyInternationalizationString.uNewPassword);
var rowPsw1 = new RowPasswordControl();
bodyFrameLayout.AddChidren(rowPsw1);
rowPsw1.Init(placeholderText);
//确认新密码
placeholderText = Language.StringByID(R.MyInternationalizationString.uConfirmNewPassword);
var rowPsw2 = new RowPasswordControl();
rowPsw2.Y = rowPsw1.Bottom;
bodyFrameLayout.AddChidren(rowPsw2);
rowPsw2.Init(placeholderText);
//提示信息
var txtMsg = new ViewNormalControl(800, true);
txtMsg.X = ControlCommonResourse.XXLeft;
txtMsg.Y = rowPsw2.Bottom + Application.GetRealHeight(5);
txtMsg.TextColor = UserCenterColor.Current.Red;
bodyFrameLayout.AddChidren(txtMsg);
//重置
var btnfinish = new BottomClickButton();
btnfinish.TextID = R.MyInternationalizationString.uResettion;
bodyFrameLayout.AddChidren(btnfinish);
btnfinish.MouseUpEvent += (sender, e) =>
{
txtMsg.Text = string.Empty;
//密码检查
var msg = this.CheckPassword(rowPsw1.Text, rowPsw2.Text);
if (msg != string.Empty)
{
txtMsg.Text = msg;
return;
}
//重置密码
this.DoResetPassword(rowPsw1.Text);
};
}
#endregion
#region ■ 重置密码___________________________
///
/// 重置密码
///
///
private async void DoResetPassword(string psw)
{
//打开进度条
this.ShowProgressBar();
var result = await Common.LocalSafeguard.Current.DoResetAdministratorPsw(psw);
//关闭进度条
this.CloseProgressBar();
if (result == true)
{
Application.RunOnMainThread(() =>
{
//管理员密码重置成功
string msg = Language.StringByID(R.MyInternationalizationString.uResetAdministratorPswSuccess);
var form = new PasswordRefreshMsgForm();
this.AddFromAndRemoveNowForm(form, msg);
form.SetTitleText(Language.StringByID(R.MyInternationalizationString.uResetAdministratorPsw));
});
}
}
#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.Length < UserCenterResourse.PasswordLength)
{
//密码长度不低于{0}位数
return string.Format(Language.StringByID(R.MyInternationalizationString.PswLengthMsg), UserCenterResourse.PasswordLength);
}
if (pswValue1 != pswValue2)
{
//两次输入的密码不一致
return Language.StringByID(R.MyInternationalizationString.SecondPswNotEqual);
}
return string.Empty;
}
#endregion
}
}