using System; using System.Collections.Generic; using System.Text; namespace Shared.Phone.UserCenter.Safety { /// /// 修改用户密码的画面 /// public class EdtiorUserPasswordForm : UserCenterCommonForm { /// /// 信息提示控件 /// private ViewNormalControl txtMsg = null; /// /// 用户账号 /// private int pswNo = 0; /// /// 画面显示(底层会固定调用此方法,借以完成画面创建) /// /// 用户账号 /// 是否是添加用户密码模式 public void ShowForm(int i_pswNo, bool addModel) { this.pswNo = i_pswNo; if (addModel == true) { //设置头部信息 base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uAddPassword)); } else { //设置头部信息 base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uChangedPassword)); } //初始化中部信息 this.InitMiddleFrame(); } /// /// 初始化中部信息 /// private void InitMiddleFrame() { //请输入用户密码 var btnTitle = new TitleViewControl(); btnTitle.TextColor = UserCenterColor.Current.TextGrayColor; btnTitle.Y = Application.GetRealHeight(40); btnTitle.TextID = R.MyInternationalizationString.uPleaseInputUserPassword; bodyFrameLayout.AddChidren(btnTitle); //新密码 string placeholderText = Language.StringByID(R.MyInternationalizationString.uNewPassword); var rowNewPsw = new RowPasswordControl(); rowNewPsw.Y = btnTitle.Bottom; bodyFrameLayout.AddChidren(rowNewPsw); rowNewPsw.Init(placeholderText); //确认新密码 placeholderText = Language.StringByID(R.MyInternationalizationString.uConfirmNewPassword); var rowConfirmPsw = new RowPasswordControl(); rowConfirmPsw.Y = rowNewPsw.Bottom; bodyFrameLayout.AddChidren(rowConfirmPsw); rowConfirmPsw.Init(placeholderText); //提示信息 this.txtMsg = new ViewNormalControl(800, true); txtMsg.X = ControlCommonResourse.XXLeft; txtMsg.Y = rowConfirmPsw.Bottom + Application.GetRealHeight(5); txtMsg.TextColor = UserCenterColor.Current.Red; bodyFrameLayout.AddChidren(txtMsg); //完成 var btnfinish = new TopLayoutFinshView(); topFrameLayout.AddChidren(btnfinish); btnfinish.MouseUpEventHandler += (sender, e) => { //执行修改用户密码 this.ChangedAdminPassword(rowNewPsw.Text, rowConfirmPsw.Text); }; } /// /// 执行修改用户密码 /// /// 新密码 /// 确认密码 private async void ChangedAdminPassword(string pswValue1, string pswValue2) { //检测密码 string msg = this.CheckPassword(pswValue1, pswValue2); if (msg != string.Empty) { Application.RunOnMainThread(() => { txtMsg.Text = msg; }); return; } //执行修改 bool result = await Common.LocalSafeguard.Current.ChangedUserPassword(this.pswNo, pswValue1); if (result == false) { return; } //用户密码已更新 string Refmsg = Language.StringByID(R.MyInternationalizationString.uUserPasswordRefreshMsg); Application.RunOnMainThread(() => { //刷新主界面 this.LoadFormMethodByName("UserPasswordMainForm", "InitMiddleFrame"); var form = new PasswordRefreshMsgForm(); this.AddFromAndRemoveNowForm(form, Refmsg); }); } /// /// 密码检查,返回错误信息,无错误信息(空字符串)则表示成功 /// /// /// /// 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; } } }