using System;
|
using System.Text.RegularExpressions;
|
using System.Threading;
|
using HDL_ON.DAL.Server;
|
using HDL_ON.UI.CSS;
|
using Shared;
|
|
namespace HDL_ON.UI.UI1Login
|
{
|
public partial class RegisterPage
|
{
|
/// <summary>
|
/// 加载事件列表
|
/// </summary>
|
void LoadEventList()
|
{
|
LoadPage_SwitchRegisterType();
|
LoadEvent_EditTextFcousChange();
|
LoadEvent_ChangeTextVisble();
|
LoadEvent_GetVerificationCode();
|
LoadEvent_Register();
|
|
LoadEvent_TextChange();
|
//var areaCodeList = pm.GetAreaCode();
|
}
|
/// <summary>
|
/// 加载文本变化事件
|
/// </summary>
|
void LoadEvent_TextChange()
|
{
|
etAccount.TextChangeEventHandler += (sender, e) =>
|
{
|
Regex reg = new Regex(@"^[1]+\d{10}");
|
var mFalg = reg.Match(etAccount.Text.Trim());
|
if (!mFalg.Success || (btnGlobalRoaming.Text == "+86" && etAccount.Text.Trim().Length != 11))
|
{
|
btnGetVerificationCode.IsSelected = false;
|
}
|
else
|
{
|
if (btnGetVerificationCode.Text == Language.StringByID(StringId.GetVerificationCode))
|
btnGetVerificationCode.IsSelected = true;
|
}
|
};
|
}
|
|
/// <summary>
|
/// 切换注册类型
|
/// </summary>
|
void LoadPage_SwitchRegisterType()
|
{
|
//选择手机注册
|
btnPhoneLogin.MouseUpEventHandler += (sender, e) =>
|
{
|
#if DEBUG
|
etAccount.Text = "17576024298";
|
#endif
|
|
#region 切换选中按钮
|
btnEmailLogin.TextColor = CSS_Color.PromptingColor1;
|
btnEmailLogin.TextSize = CSS_FontSize.TextFontSize;
|
btnPhoneLogin.TextColor = CSS_Color.MainColor;
|
btnPhoneLogin.TextSize = CSS_FontSize.EmphasisFontSize_Secondary;
|
etAccount.PlaceholderText = Language.StringByID(StringId.PlsEntryCorrectMobilNeumber);
|
#endregion
|
|
#region 切换注册方式及图标
|
registerType = 0;
|
if (btnAccountIcon.Parent != null)
|
{
|
btnAccountIcon.RemoveFromParent();
|
}
|
accountView.AddChidren(btnGlobalRoaming);
|
#endregion
|
};
|
|
//选择邮箱注册
|
btnEmailLogin.MouseUpEventHandler += (sender, e) =>
|
{
|
|
#if DEBUG
|
etAccount.Text = "979412578@qq.com";
|
#endif
|
#region 切换选中按钮
|
btnPhoneLogin.TextColor = CSS_Color.PromptingColor1;
|
btnPhoneLogin.TextSize = CSS_FontSize.TextFontSize;
|
btnEmailLogin.TextColor = CSS_Color.MainColor;
|
btnEmailLogin.TextSize = CSS_FontSize.EmphasisFontSize_Secondary;
|
etAccount.PlaceholderText = Language.StringByID(StringId.PlsEntryEmailAddress);
|
#endregion
|
|
#region 切换注册类型及图标
|
registerType = 1;
|
if (btnGlobalRoaming.Parent != null)
|
{
|
btnGlobalRoaming.RemoveFromParent();
|
}
|
accountView.AddChidren(btnAccountIcon);
|
#endregion
|
|
};
|
}
|
|
/// <summary>
|
/// 加载文本框焦点变化事件
|
/// </summary>
|
void LoadEvent_EditTextFcousChange()
|
{
|
//账号文本框焦点变化事件
|
etAccount.FoucsChanged += (sender, e) =>
|
{
|
if (etAccount.Foucs)
|
{
|
btnAccountViewBottomLine.BackgroundColor = CSS_Color.MainColor;
|
btnAccountViewBottomLine.Height = Application.GetRealHeight(2);
|
}
|
else
|
{
|
//标记手机号码无效
|
btnGetVerificationCode.IsSelected = false;
|
btnAccountViewBottomLine.BackgroundColor = CSS_Color.DividingLineColor;
|
btnAccountViewBottomLine.Height = Application.GetRealHeight(1);
|
//手机注册-验证手机号码是否正确
|
if (etAccount.Text.Trim().Length > 0)
|
{
|
if (registerType == 0)
|
{
|
|
Regex reg = new Regex(@"^[1]+\d{10}");
|
var mFalg = reg.Match(etAccount.Text.Trim());
|
if (!mFalg.Success || (btnGlobalRoaming.Text == "+86" && etAccount.Text.Trim().Length != 11))
|
{
|
btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
|
btnAccountViewBottomLine.Height = Application.GetRealHeight(2);
|
new Tip()
|
{
|
CloseTime = 3,
|
Text = Language.StringByID(StringId.PlsEntryCorrectMobilNeumber),
|
Direction = AMPopTipDirection.None,
|
}.Show(bodyView);
|
}
|
else
|
{
|
if (btnGetVerificationCode.Text == Language.StringByID(StringId.GetVerificationCode))
|
{
|
//标记手机号码有效
|
btnGetVerificationCode.IsSelected = true;
|
}
|
//账号有效、密码有效、验证码输入了,才能点击注册
|
if (btnGetVerificationCode.IsSelected && ValidPassword && !string.IsNullOrEmpty(etVerificationCode.Text.Trim()))
|
{
|
btnRegister.IsSelected = true;
|
}
|
}
|
}
|
else if (registerType == 1)
|
{
|
//邮箱注册-验证邮箱是否正确
|
var reg = new Regex("^\\s*([A-Za-z0-9_-]+(\\.\\w+)*@(\\w+\\.)+\\w{2,5})\\s*$");
|
//Regex.IsMatch(etAccount.Text.Trim(), "([a-zA-Z0-9_\\.\\-])+\\@(([a-zA-Z0-9\\-])+\\.)+([a-zA-Z0-9]{2,5})+");
|
var mFalg = reg.Match(etAccount.Text.Trim());
|
if (!mFalg.Success)
|
{
|
btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
|
btnAccountViewBottomLine.Height = Application.GetRealHeight(2);
|
new Tip()
|
{
|
CloseTime = 3,
|
Text = Language.StringByID(StringId.PlsEntryCorrectEmailAddress),
|
Direction = AMPopTipDirection.None,
|
}.Show(bodyView);
|
}
|
else
|
{
|
if (btnGetVerificationCode.Text == Language.StringByID(StringId.GetVerificationCode))
|
{//标记手机号码有效
|
btnGetVerificationCode.IsSelected = true;
|
}
|
//账号有效、密码有效、验证码输入了,才能点击注册
|
if (btnGetVerificationCode.IsSelected && ValidPassword && string.IsNullOrEmpty(etVerificationCode.Text.Trim()))
|
{
|
btnRegister.IsSelected = true;
|
}
|
}
|
}
|
}
|
}
|
};
|
|
//密码文本框焦点变化事件
|
etPassword.FoucsChanged += (sender, e) =>
|
{
|
if (etPassword.Foucs)
|
{
|
btnPasswordViewBottomLine.BackgroundColor = CSS_Color.MainColor;
|
btnPasswordViewBottomLine.Height = Application.GetRealHeight(2);
|
}
|
else
|
{
|
//需要输入6位以上的密码
|
if (etPassword.Text.Length < 6|| etPassword.Text.Length >13)
|
{
|
|
btnPasswordViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
|
btnPasswordViewBottomLine.Height = Application.GetRealHeight(2);
|
|
new Tip()
|
{
|
CloseTime = 3,
|
Direction = AMPopTipDirection.None,
|
Text = Language.StringByID(StringId.PlsRegisterPassword)
|
}.Show(bodyView);
|
}
|
else
|
{
|
btnPasswordViewBottomLine.BackgroundColor = CSS_Color.DividingLineColor;
|
btnPasswordViewBottomLine.Height = Application.GetRealHeight(1);
|
}
|
}
|
};
|
|
//确认密码文本框焦点变化事件
|
etRepeatPassword.FoucsChanged += (sender, e) =>
|
{
|
if (etRepeatPassword.Foucs)
|
{
|
btnRepeatPasswordViewBottomLine.BackgroundColor = CSS_Color.MainColor;
|
btnRepeatPasswordViewBottomLine.Height = Application.GetRealHeight(2);
|
}
|
else
|
{
|
btnRepeatPasswordViewBottomLine.BackgroundColor = CSS_Color.DividingLineColor;
|
btnRepeatPasswordViewBottomLine.Height = Application.GetRealHeight(1);
|
//校验两次输入的密码是否一致
|
if (etPassword.Text.Trim().Length > 5)
|
{
|
if (etPassword.Text.Trim() != etRepeatPassword.Text.Trim())
|
{
|
btnRepeatPasswordViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
|
btnRepeatPasswordViewBottomLine.Height = Application.GetRealHeight(2);
|
new Tip()
|
{
|
CloseTime = 3,
|
Direction = AMPopTipDirection.None,
|
Text = Language.StringByID(StringId.IncorrectRepeatPassword)
|
}.Show(bodyView);
|
}
|
else
|
{
|
ValidPassword = true;
|
//账号有效、密码有效、验证码输入了,才能点击注册
|
if (btnGetVerificationCode.IsSelected && ValidPassword && !string.IsNullOrEmpty(etVerificationCode.Text.Trim()))
|
{
|
btnRegister.IsSelected = true;
|
}
|
}
|
}
|
}
|
};
|
|
//验证码文本框焦点变化事件
|
etVerificationCode.FoucsChanged += (sender, e) =>
|
{
|
if (etVerificationCode.Foucs)
|
{
|
btnVerificationCodeViewBottomLine.BackgroundColor = CSS_Color.MainColor;
|
btnVerificationCodeViewBottomLine.Height = Application.GetRealHeight(2);
|
}
|
else
|
{
|
btnVerificationCodeViewBottomLine.BackgroundColor = CSS_Color.DividingLineColor;
|
btnVerificationCodeViewBottomLine.Height = Application.GetRealHeight(1);
|
if (etVerificationCode.Text.Length > 1)
|
{
|
//账号有效、密码有效、验证码输入了,才能点击注册
|
if (ValidPassword)
|
{
|
btnRegister.IsSelected = true;
|
}
|
}
|
}
|
};
|
}
|
|
/// <summary>
|
/// 更改密码可见性
|
/// </summary>
|
void LoadEvent_ChangeTextVisble()
|
{
|
//密码文本可见性变化
|
btnVisiblePassword.MouseUpEventHandler += (sender, e) =>
|
{
|
btnVisiblePassword.IsSelected = !btnVisiblePassword.IsSelected;
|
etPassword.SecureTextEntry = !btnVisiblePassword.IsSelected;
|
};
|
//重复密码文本可见性变化
|
btnRepeatVisiblePassword.MouseUpEventHandler += (sender, e) =>
|
{
|
btnRepeatVisiblePassword.IsSelected = !btnRepeatVisiblePassword.IsSelected;
|
etRepeatPassword.SecureTextEntry = !btnRepeatVisiblePassword.IsSelected;
|
};
|
}
|
|
/// <summary>
|
/// 获取验证码
|
/// </summary>
|
void LoadEvent_GetVerificationCode()
|
{
|
btnGetVerificationCode.MouseUpEventHandler += (sender, e) =>
|
{
|
if (btnGetVerificationCode.IsSelected)
|
{
|
btnGetVerificationCode.IsSelected = false;
|
string account = etAccount.Text.Trim();
|
//短信发送间隔60s
|
int time = 60;
|
new Thread(() =>
|
{
|
while (time > 0)
|
{
|
time--;
|
Application.RunOnMainThread(() =>
|
{
|
btnGetVerificationCode.Text = time.ToString() + "s";
|
});
|
Thread.Sleep(1000);
|
}
|
Application.RunOnMainThread(() =>
|
{
|
//回复获取短信按钮事件
|
btnGetVerificationCode.IsSelected = true;
|
btnGetVerificationCode.TextID = StringId.GetVerificationCode;
|
});
|
})
|
{ IsBackground = true }.Start();
|
new Thread(() =>
|
{
|
//获取验证码
|
var result = pm.GetPhoneRegisterVerCode(account);
|
if (result.StateCode.ToUpper() == "SUCCESS")
|
{
|
}
|
else
|
{
|
string tipString = "Server error";
|
switch (result.StateCode)
|
{
|
case "Exist":
|
tipString = Language.StringByID(StringId.AccountAlreadyExists);
|
break;
|
case "SendFail":
|
tipString = Language.StringByID(StringId.FailedToSendVerificationCode);
|
break;
|
case "Self:Net_Error":
|
tipString = Language.StringByID(StringId.NetworkAnomaly);
|
break;
|
case "ParameterOrEmpty":
|
if (registerType == 0)
|
tipString = Language.StringByID(StringId.PlsEntryCorrectMobilNeumber);
|
else
|
tipString = Language.StringByID(StringId.PlsEntryCorrectEmailAddress);
|
break;
|
}
|
Application.RunOnMainThread(() =>
|
{
|
new Tip()
|
{
|
CloseTime = 3,
|
Direction = AMPopTipDirection.None,
|
Text = tipString
|
}.Show(bodyView);
|
});
|
}
|
})
|
{ IsBackground = true }.Start();
|
}
|
};
|
}
|
|
/// <summary>
|
/// 加载注册按钮事件
|
/// </summary>
|
void LoadEvent_Register()
|
{
|
btnRegister.MouseUpEventHandler += (sender, e) =>
|
{
|
if (btnRegister.IsSelected)
|
{
|
waitPage = new Loading();
|
new PublicAssmebly().LoadPage_WaitPage(LoadMethod_RegisterThread(), bodyView, waitPage);
|
}
|
};
|
}
|
|
/// <summary>
|
/// 加载注册方法
|
/// </summary>
|
Thread LoadMethod_RegisterThread()
|
{
|
string account = etAccount.Text.Trim();
|
string password = etPassword.Text.Trim();
|
string entryPassword = etRepeatPassword.Text.Trim();
|
string verCode = etVerificationCode.Text.Trim();
|
return new Thread(() =>
|
{
|
try
|
{
|
//校验验证码/注册账号
|
var validateSmsResult = pm.ValidataCodeAndRegister(account, password, entryPassword, verCode, 86);
|
//验证码校验成功
|
if (validateSmsResult.StateCode.ToUpper() == "SUCCESS")
|
{
|
//注册成功
|
//执行回调事件
|
//callbackAction?.Invoke(account);
|
Application.RunOnMainThread(() =>
|
{
|
this.Close();
|
LoadEvent_AutoLogin(account, password);
|
});
|
}
|
else//注册失败
|
{
|
string erorrInfo = "";
|
switch (validateSmsResult.StateCode)
|
{
|
case "Exist":
|
erorrInfo = Language.StringByID(StringId.AccountAlreadyExists);
|
break;
|
case "PwdNoConfirm":
|
erorrInfo = Language.StringByID(StringId.IncorrectRepeatPassword);
|
break;
|
case "ValidCodeAndPhoneNoEqual":
|
erorrInfo = Language.StringByID(StringId.VerificationCodeWrong);
|
break;
|
case "NoRecord":
|
erorrInfo = Language.StringByID(StringId.PlsGetTheVerificationCode);
|
Application.RunOnMainThread(() =>
|
{
|
btnVerificationCodeViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
|
btnVerificationCodeViewBottomLine.Height = Application.GetRealHeight(2);
|
});
|
break;
|
default:
|
erorrInfo = Language.StringByID(StringId.RegistrationFailedPleaseTryAgain);
|
break;
|
}
|
Application.RunOnMainThread(() =>
|
{
|
new Tip()
|
{
|
CloseTime = 3,
|
Direction = AMPopTipDirection.None,
|
Text = erorrInfo,
|
}.Show(bodyView);
|
});
|
}
|
}
|
catch (Exception ex)
|
{
|
MainPage.Log("Exception 1 : " + ex.Message);
|
}
|
finally
|
{
|
Application.RunOnMainThread(() =>
|
{
|
waitPage.Hide();
|
});
|
}
|
});
|
}
|
|
}
|
}
|