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
{
///
/// 加载事件列表
///
void LoadEventList()
{
LoadPage_SwitchRegisterType();
LoadEvent_EditTextFcousChange();
LoadEvent_ChangeTextVisble();
LoadEvent_GetVerificationCode();
LoadEvent_Register();
LoadEvent_LimtPasswordLength();
LoadEvent_TextChange();
LoadEvent_Server();
//var areaCodeList = pm.GetAreaCode();
}
///
/// 加载文本变化事件
///
void LoadEvent_TextChange()
{
etAccount.TextChangeEventHandler = (sender, e) =>
{
//Regex reg = new Regex(@"^[1]+\d{10}");
//var mFalg = reg.Match(etAccount.Text.Trim());
if (registerType == 0)//手机注册获取验证码按钮生效条件
{
if (!Utlis.CheckPhoneNumber(etAccount.Text.Trim(), phoneZoneCode))
{
btnGetVerificationCode_Phone.IsSelected = false;
}
else
{
if (btnGetVerificationCode_Phone.Text == Language.StringByID(StringId.GetVerificationCode))
btnGetVerificationCode_Phone.IsSelected = true;
}
}
else//邮箱注册获取验证码按钮生效条件
{
if (!Utlis.CheckEmail(etAccount.Text.Trim()))
{
btnGetVerificationCode_Mail.IsSelected = false;
}
else
{
if (btnGetVerificationCode_Mail.Text == Language.StringByID(StringId.GetVerificationCode))
btnGetVerificationCode_Mail.IsSelected = true;
}
}
};
}
///
/// 切换注册类型
///
void LoadPage_SwitchRegisterType()
{
//选择手机注册
btnPhoneLogin.MouseUpEventHandler = (sender, e) =>
{
if (registerType == 0)
{
return;
}
etAccount.IsNumberKeyboardType = true;
etAccount.Text = registerPhone;
etPassword.Text = "";
etRepeatPassword.Text = "";
#region 切换选中按钮
btnGetVerificationCode_Mail.Visible = false;
btnGetVerificationCode_Phone.Visible = true;
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.PlsEntryPhoneNumber);
#endregion
#region 切换注册方式及图标
registerType = 0;
if (btnAccountIcon.Parent != null)
{
btnAccountIcon.RemoveFromParent();
}
accountView.AddChidren(btnGlobalRoaming);
#endregion
};
//选择邮箱注册
btnEmailLogin.MouseUpEventHandler = (sender, e) =>
{
if (registerType == 1)
return;
etAccount.IsNumberKeyboardType = false;
etAccount.Text = registerEmail;
etPassword.Text = "";
etRepeatPassword.Text = "";
#region 切换选中按钮
btnGetVerificationCode_Mail.Visible = true;
btnGetVerificationCode_Phone.Visible = false;
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
};
}
///
/// 加载文本框焦点变化事件
///
void LoadEvent_EditTextFcousChange()
{
//账号文本框焦点变化事件
etAccount.FoucsChanged += (sender, e) =>
{
if (etAccount.Foucs)
{
btnAccountViewBottomLine.BackgroundColor = CSS_Color.MainColor;
btnAccountViewBottomLine.Height = Application.GetRealHeight(2);
}
else
{
//标记手机号码无效
btnAccountViewBottomLine.BackgroundColor = CSS_Color.DividingLineColor;
btnAccountViewBottomLine.Height = Application.GetRealHeight(1);
//手机注册-验证手机号码是否正确
if (etAccount.Text.Trim().Length > 0)
{
if (registerType == 0)
{
if (!Utlis.CheckPhoneNumber(etAccount.Text.Trim(), phoneZoneCode))
{
btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
btnAccountViewBottomLine.Height = Application.GetRealHeight(2);
btnGetVerificationCode_Phone.IsSelected = false;
new Tip()
{
CloseTime = 1,
Text = Language.StringByID(StringId.PlsEntryCorrectMobilNeumber),
Direction = AMPopTipDirection.None,
}.Show(bodyView);
}
else
{
if (btnGetVerificationCode_Phone.Text == Language.StringByID(StringId.GetVerificationCode))
{
//标记手机号码有效
btnGetVerificationCode_Phone.IsSelected = true;
}
//账号有效、密码有效、验证码输入了,才能点击注册
if (ValidPassword && !string.IsNullOrEmpty(etVerificationCode.Text.Trim()))
{
btnRegister.IsSelected = true;
}
}
}
else if (registerType == 1)
{
//邮箱注册-验证邮箱是否正确
if (!Utlis.CheckEmail(etAccount.Text.Trim()))
{
btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
btnAccountViewBottomLine.Height = Application.GetRealHeight(2);
btnGetVerificationCode_Mail.IsSelected = false;
new Tip()
{
CloseTime = 1,
Text = Language.StringByID(StringId.PlsEntryCorrectEmailAddress),
Direction = AMPopTipDirection.None,
}.Show(bodyView);
}
else
{
if (btnGetVerificationCode_Mail.Text == Language.StringByID(StringId.GetVerificationCode))
{//标记手机号码有效
btnGetVerificationCode_Mail.IsSelected = true;
}
//账号有效、密码有效、验证码输入了,才能点击注册
if (ValidPassword && string.IsNullOrEmpty(etVerificationCode.Text.Trim()))
{
btnRegister.IsSelected = true;
}
}
}
}
if (accountType == 0)
{
registerPhone = etAccount.Text.Trim();
}
else
{
registerEmail = etAccount.Text.Trim();
}
}
};
//密码文本框焦点变化事件
etPassword.FoucsChanged += (sender, e) =>
{
if (etPassword.Foucs)
{
btnPasswordViewBottomLine.BackgroundColor = CSS_Color.MainColor;
btnPasswordViewBottomLine.Height = Application.GetRealHeight(2);
}
else
{
if (etPassword.Text.Length == 0)
{
btnPasswordViewBottomLine.BackgroundColor = CSS_Color.DividingLineColor;
btnPasswordViewBottomLine.Height = Application.GetRealHeight(1);
return;
}
//需要输入6位以上的密码
if (etPassword.Text.Length < 6 || etPassword.Text.Length > 13)
{
btnPasswordViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
btnPasswordViewBottomLine.Height = Application.GetRealHeight(2);
new Tip()
{
CloseTime = 1,
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 = 1,
Direction = AMPopTipDirection.None,
Text = Language.StringByID(StringId.IncorrectRepeatPassword)
}.Show(bodyView);
}
else
{
ValidPassword = true;
//账号有效、密码有效、验证码输入了,才能点击注册
if (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;
}
}
}
};
}
///
/// 限制密码文本库输入长度
///
void LoadEvent_LimtPasswordLength()
{
etPassword.TextChangeEventHandler = (sender, e) =>
{
if (etPassword.Text.Length > 16)
{
etPassword.Text = etPassword.Text.Remove(15);
}
};
etRepeatPassword.TextChangeEventHandler = (sender, e) =>
{
if (etRepeatPassword.Text.Length > 16)
{
etRepeatPassword.Text = etRepeatPassword.Text.Remove(15);
}
};
}
///
/// 更改密码可见性
///
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;
};
}
///
/// 获取验证码
///
void LoadEvent_GetVerificationCode()
{
EventHandler eventHandler = (sender, e) =>
{
if ((sender as Button).IsSelected)
{
//判断是否选择了服务器,选择了才能发送验证码
if (CheckIfSelectServer() == false) return;
string account = etAccount.Text.Trim();
int time = 60;
//加载Loading效果
var waitPage = new Loading();
bodyView.AddChidren(waitPage);
waitPage.Start(Language.StringByID(StringId.PleaseWait));
new Thread(() =>
{
try
{
//1.先检查账号是否注册过
var result = pm.GetRegionByAccount(account);
//2.账号不存在,才允许继续注册
if (result.Code == StateCode.ACCOUNT_NOT_EXIST)
{
//账号不存在 未注册允许发送验证码注册
//2.2 获取验证码
ResponsePackNew resultObj;
if (registerType == 1)//邮箱
{
resultObj = pm.VerificationCodeSend(VerifyType.REGISTER_USER, account);
}
else
{
resultObj = pm.VerificationCodeSend(VerifyType.REGISTER_USER, account, true, phoneZoneCode);
}
if (resultObj.Code != StateCode.SUCCESS)
{
// 提示错误
IMessageCommon.Current.ShowErrorInfoAlter(resultObj.Code);
}
else
{
//2.1 开始倒计时
Application.RunOnMainThread(() =>
{
//短信发送间隔60s
(sender as Button).IsSelected = false;
});
new Thread(() =>
{
while (time > 0)
{
time--;
Application.RunOnMainThread(() =>
{
(sender as Button).Text = time.ToString() + "s";
});
Thread.Sleep(1000);
}
Application.RunOnMainThread(() =>
{
//回复获取短信按钮事件
(sender as Button).IsSelected = true;
(sender as Button).TextID = StringId.GetVerificationCode;
});
})
{ IsBackground = true }.Start();
}
}
else if (result.Code.ToUpper() == StateCode.SUCCESS)
{
//3.提示账号已存在,无法重复注册
Utlis.ShowAlertOnMainThread(Language.StringByID(StringId.AccountAlreadyUse));
}
else
{
//4.提示其它异常错误
IMessageCommon.Current.ShowErrorInfoAlter(result.Code);
}
}
catch { }
finally
{
Application.RunOnMainThread(() =>
{
if (waitPage != null)
{
waitPage.RemoveFromParent();
waitPage = null;
}
});
}
})
{ IsBackground = true }.Start();
//(sender as Button).IsSelected = false;
//string account = etAccount.Text.Trim();
////短信发送间隔60s
//int time = 60;
//new Thread(() =>
//{
// while (time > 0)
// {
// time--;
// Application.RunOnMainThread(() =>
// {
// (sender as Button).Text = time.ToString() + "s";
// });
// Thread.Sleep(1000);
// }
// Application.RunOnMainThread(() =>
// {
// //回复获取短信按钮事件
// (sender as Button).IsSelected = true;
// (sender as Button).TextID = StringId.GetVerificationCode;
// });
//})
//{ IsBackground = true }.Start();
//new Thread(() =>
//{
// ResponsePackNew resultObj;
// // 获取验证码
// if (registerType == 1)//邮箱
// {
// resultObj = pm.VerificationCodeSend(VerifyType.REGISTER_USER, account);
// }
// else
// {
// resultObj = pm.VerificationCodeSend(VerifyType.REGISTER_USER, account, true, phoneZoneCode);
// }
// if (resultObj.Code != StateCode.SUCCESS_CODE)
// {
// // 提示错误
// IMessageCommon.Current.ShowErrorInfoAlter(NewAPI.API_POST_Verification_Send, resultObj.Code);
// }
//})
//{ IsBackground = true }.Start();
}
};
btnGetVerificationCode_Phone.MouseDownEventHandler = eventHandler;
btnGetVerificationCode_Mail.MouseDownEventHandler = eventHandler;
}
///
/// 加载注册按钮事件
///
void LoadEvent_Register()
{
btnRegister.MouseUpEventHandler = (sender, e) =>
{
if (etPassword.Text.Trim().Length > 13 || etPassword.Text.Trim().Length < 6)
{
new Tip()
{
CloseTime = 1,
Direction = AMPopTipDirection.None,
Text = Language.StringByID(StringId.PlsRegisterPassword)
}.Show(bodyView);
return;
}
if (btnRegister.IsSelected)
{
//判断是否选择了服务器,选择了才能发送验证码
if (CheckIfSelectServer() == false) return;
waitPage = new Loading();
new PublicAssmebly().LoadPage_WaitPage(LoadMethod_RegisterThread(), bodyView, waitPage);
}
};
}
///
/// 加载注册方法
///
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 isPhone = registerType == 0;
var validateSmsResult = pm.ValidataCodeAndRegister(account, password, verCode, isPhone);
if (validateSmsResult.Code == StateCode.SUCCESS)
{
//注册成功
//执行回调事件
//callbackAction?.Invoke(account);
Application.RunOnMainThread(() =>
{
this.Close();
LoadEvent_AutoLogin(account, password);
});
}
else// 注册失败
{
// 提示错误
IMessageCommon.Current.ShowErrorInfoAlter(validateSmsResult.Code);
//2020-11-13 待修改
//string erorrInfo = "";
//switch (validateSmsResult.StateCode)
//{
// case "Exist":
// erorrInfo = Language.StringByID(StringId.AccountAlreadyUse);
// 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 = 1,
// Direction = AMPopTipDirection.None,
// Text = erorrInfo,
// }.Show(bodyView);
//});
}
}
catch (Exception ex)
{
MainPage.Log("Exception 1 : " + ex.Message);
}
finally
{
Application.RunOnMainThread(() =>
{
waitPage.Hide();
});
}
});
}
///
/// 加载服务器选择按钮事件
///
void LoadEvent_Server()
{
//判断之前是否选择过
if (UserInfo.Current.GlobalRegion != null && !string.IsNullOrEmpty(UserInfo.Current.GlobalRegion.regionUrl))
{
SetServerText();
}
EventHandler eventHandler = (sender, e) =>
{
Action selectAction = () =>
{
//服务器选择过标记为true
SetServerText();
};
new SelectServerDialog(selectAction).LoadPage();
};
btnServerGo.MouseUpEventHandler = eventHandler;
btnServerText.MouseUpEventHandler = eventHandler;
}
///
/// 检测是否选择了服务器
///
///
private bool CheckIfSelectServer()
{
if (isSelectServer == false)
{
//请先选择国家/区域
Utlis.ShowTip(Language.StringByID(StringId.PleaseSelectCountryOrRegion));
ShowServerBottomLineState(true);
return false;
}
return true;
}
///
/// 服务器下划线样式
///
///
void ShowServerBottomLineState(bool isError)
{
if (isError)
{
btnServerBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
btnServerBottomLine.Height = Application.GetRealHeight(2);
}
else
{
btnServerBottomLine.BackgroundColor = CSS_Color.DividingLineColor;
btnServerBottomLine.Height = Application.GetRealHeight(1);
}
}
///
///
///
void SetServerText()
{
//服务器选择过标记为true
isSelectServer = true;
ShowServerBottomLineState(false);
btnServerText.TextColor = CSS_Color.FirstLevelTitleColor;
btnServerText.Text = UserInfo.Current.GlobalRegion.regionName;
}
}
}