xm
2019-07-16 b910cb79c9b5bcc204022a3cf9e6950f0a64dfbd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
 
namespace Shared.Phone.UserCenter.Safety
{
    /// <summary>
    /// 重置管理员密码界面
    /// </summary>
    public class ResetAdminPasswordForm : UserCenterCommonForm
    {
        #region ■ 变量声明___________________________
        #endregion
 
        #region ■ 初始化_____________________________
 
        /// <summary>
        /// 画面显示(底层会固定调用此方法,借以完成画面创建)
        /// </summary>
        public void ShowForm()
        {
            //设置头部信息
            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uResetAdministratorPsw));
 
            //初始化中部信息
            this.InitMiddleFrame();
        }
 
        /// <summary>
        /// 初始化中部信息
        /// </summary>
        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 ■ 重置密码___________________________
 
        /// <summary>
        /// 重置密码
        /// </summary>
        /// <param name="psw"></param>
        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 ■ 一般方法___________________________
 
        /// <summary>
        /// 密码检查,返回错误信息,无错误信息(空字符串)则表示成功
        /// </summary>
        /// <param name="pswValue1"></param>
        /// <param name="pswValue2"></param>
        /// <returns></returns>
        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
    }
}