using System; using System.Collections.Generic; using System.Text; namespace Shared.Phone.UserCenter.Safety { /// /// 创建新的胁迫密码 /// public class CoercePswAddNewForm : EditorCommonForm { #region ■ 变量声明___________________________ /// /// 密码改变事件 /// public Action PasswordChangedEvent = null; /// /// 用户账号 /// private int pswNo = 5; /// /// 第一个密码 /// private string firstPsw = string.Empty; /// /// 密码输入控件 /// private PswNumberInputControl pswControl = null; #endregion #region ■ 初始化_____________________________ /// /// 画面显示(底层会固定调用此方法,借以完成画面创建) /// /// 密码备注 public void ShowForm(string i_pswTip) { //设置头部信息 base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uCoercePassword)); //初始化中部信息 this.InitMiddleFrame(i_pswTip); } /// /// 初始化中部信息 /// /// 密码备注 private void InitMiddleFrame(string i_pswTip) { //清空bodyFrame this.ClearBodyFrame(); //请输入新胁迫密码 pswControl = new PswNumberInputControl(Language.StringByID(R.MyInternationalizationString.uPleaseInputNewCoercePassword), 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_pswTip); } else { firstPsw = pssword; //请重复输入新胁迫密码 pswControl.ResetControlInfo(Language.StringByID(R.MyInternationalizationString.uPleaseRepeatInputNewCoercePassword)); } }; } #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.uPleaseInputNewCoercePassword)); return; } //胁迫密码设置成功 string msg = Language.StringByID(R.MyInternationalizationString.uSetCoercePasswordSuccess); this.ShowMassage(ShowMsgType.Tip, msg); //界面直接关闭 this.CloseForm(); if (HdlFormLogic.Current.IsFormOpen("CoercePswEditorForm") == false) { var form = new CoercePswEditorForm(); form.AddForm(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 } }