using PDF_Master.Helper; using PDF_Master.Properties; using Prism.Commands; using Prism.Mvvm; using Prism.Regions; using Prism.Services.Dialogs; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Threading; namespace PDF_Master.ViewModels.Dialog.ServiceDialog { public class CodeRegionViewModel : BindableBase, INavigationAware { private string uuid = ServiceHelper.GetDeviceSerialNumber(); private RegisterDialogViewModel RegisterDialogViewModel; private LoginDialogViewModel LoginDialogViewModel; public IDialogService dialogs; private ErrorCodeHelper ErrorCodeHelper = new ErrorCodeHelper(); //60秒倒计时 private int time = 60; #region 文案 private string _Text_Signup = ""; public string Text_Signup { get { return _Text_Signup; } set { SetProperty(ref _Text_Signup, value); } } private string _Text_toocode = ""; public string Text_toocode { get { return _Text_toocode; } set { SetProperty(ref _Text_toocode, value); } } private string _Text_vcode = ""; public string Text_vcode { get { return _Text_vcode; } set { SetProperty(ref _Text_vcode, value); } } private string _Text_novcode = ""; public string Text_novcode { get { return _Text_novcode; } set { SetProperty(ref _Text_novcode, value); } } private string _Text_recode = ""; public string Text_recode { get { return _Text_recode; } set { SetProperty(ref _Text_recode, value); } } private string _Text_back = ""; public string Text_back { get { return _Text_back; } set { SetProperty(ref _Text_back, value); } } private string _Bordcolor = "#F3465B"; public string Bordcolor { get { return _Bordcolor; } set { SetProperty(ref _Bordcolor, value); } } private string _BottomBackgroubd = "#FDC7C6"; public string BottomBackgroubd { get { return _BottomBackgroubd; } set { SetProperty(ref _BottomBackgroubd, value); } } private void InitString() { Text_Signup = App.ServiceLoader.GetString("Text_Signup"); Text_toocode = App.ServiceLoader.GetString("Text_toocode"); Text_vcode = App.ServiceLoader.GetString("Text_vcode"); Text_novcode = App.ServiceLoader.GetString("Text_novcode"); Text_recode = App.ServiceLoader.GetString("Text_recode"); Text_back = App.ServiceLoader.GetString("Text_back"); } #endregion private bool _EnableNextStep = false; public bool EnableNextStep { get { return _EnableNextStep; } set { SetProperty(ref _EnableNextStep, value); } } private string _CodeTypeName = ""; public string CodeTypeName { get { return _CodeTypeName; } set { SetProperty(ref _CodeTypeName, value); } } private string _CodeType = ""; public string CodeType { get { return _CodeType; } set { SetProperty(ref _CodeType, value); } } private string _codetime = "(60)"; public string Codetime { get { return _codetime; } set { SetProperty(ref _codetime, value); } } private string _Codesum = ""; public string Codesum { get { return _Codesum; } set { SetProperty(ref _Codesum, value); } } private string _Code1 = ""; public string Code1 { get { return _Code1; } set { SetProperty(ref _Code1, value); if( CodeSum()) { Code6Changed(); } } } private string _Code2 = ""; public string Code2 { get { return _Code2; } set { SetProperty(ref _Code2, value); if (CodeSum()) { Code6Changed(); } } } private string _Code3 = ""; public string Code3 { get { return _Code3; } set { SetProperty(ref _Code3, value); if (CodeSum()) { Code6Changed(); } } } private string _Code4 = ""; public string Code4 { get { return _Code4; } set { SetProperty(ref _Code4, value); if (CodeSum()) { Code6Changed(); } } } private string _Code5 = ""; public string Code5 { get { return _Code5; } set { SetProperty(ref _Code5, value); if (CodeSum()) { Code6Changed(); } } } private string _Code6 = ""; public string Code6 { get { return _Code6; } set { SetProperty(ref _Code6, value); } } private string _RegisterCodemsg = ""; public string RegisterCodemsg { get { return _RegisterCodemsg; } set { SetProperty(ref _RegisterCodemsg, value); } } private Visibility _codeagin = Visibility.Collapsed; public Visibility Codeagin { get { return _codeagin; } set { SetProperty(ref _codeagin, value); } } private Visibility _RegisterCodemsgVis = Visibility.Collapsed; public Visibility RegisterCodemsgVis { get { return _RegisterCodemsgVis; } set { SetProperty(ref _RegisterCodemsgVis, value); } } public bool IsNavigationTarget(NavigationContext navigationContext) { return true; } public void OnNavigatedFrom(NavigationContext navigationContext) { } public void OnNavigatedTo(NavigationContext navigationContext) { navigationContext.Parameters.TryGetValue("RegisterDialogViewModel", out RegisterDialogViewModel); navigationContext.Parameters.TryGetValue("LoginDialogViewModel", out LoginDialogViewModel); InitString(); if (LoginDialogViewModel!=null&&LoginDialogViewModel.IsReset == true) { CodeType = "user_reset_password"; LoginDialogViewModel.IsReset = false; string code = ServiceHelper.Get_code("user_reset_password", LoginDialogViewModel.LoginEmail); if (code == "315") { Codeagin = Visibility.Visible; Codetime = " "; disTimer.Stop(); RegisterCodemsg = ErrorCodeHelper.Ercode("codehad"); Bordcolor = "#FFAF25"; BottomBackgroubd = "#FFF1C1"; RegisterCodemsgVis = Visibility.Visible; } else if (code == "200") { Codeagin = Visibility.Collapsed; Timebegin(); } else { RegisterCodemsg = ErrorCodeHelper.Ercode("codehad"); Bordcolor = "#F3465B"; BottomBackgroubd = "#FFF1C1"; RegisterCodemsgVis = Visibility.Visible; } } else { CodeType = "user_register"; string code = ServiceHelper.Get_code("user_register", RegisterDialogViewModel.RegisterEmail); if (code == "315") { Codeagin = Visibility.Visible; Codetime = " "; disTimer.Stop(); RegisterCodemsg = ErrorCodeHelper.Ercode("codehad"); RegisterCodemsgVis = Visibility.Visible; Bordcolor = "#FFAF25"; BottomBackgroubd = "#FFF1C1"; } else if (code == "200") { Codeagin = Visibility.Collapsed; Timebegin(); } else { RegisterCodemsg = ErrorCodeHelper.Ercode("codehad"); Bordcolor = "#F3465B"; BottomBackgroubd = "#FFF1C1"; RegisterCodemsgVis = Visibility.Visible; } } if (CodeType == "user_reset_password") { CodeTypeName = Text_toocode; } else { CodeTypeName = Text_Signup; } } public DelegateCommand BackRegisterLastCommand { get; set; } public DelegateCommand CodetooCommand { get; set; } public DelegateCommand Code6ChangedCommand { get; set; } public DelegateCommand RegisterNextCommand { get; set; } public CodeRegionViewModel(IRegionManager regionManager, IDialogService dialogService) { dialogs = dialogService; BackRegisterLastCommand = new DelegateCommand(BackRegisterLast); CodetooCommand = new DelegateCommand(Codetoo); Code6ChangedCommand = new DelegateCommand(Code6Changed); RegisterNextCommand = new DelegateCommand(RegisterNext); if (CodeType == "user_reset_password") { CodeTypeName = Text_toocode; } else { CodeTypeName = Text_Signup; } } private void Codeclear() { Code1 = ""; Code2 = ""; Code3 = ""; Code4 = ""; Code5 = ""; Code6= ""; } private bool CodeSum() { Codesum = Code1 + Code2 + Code3 + Code4 + Code5 + Code6; if(Codesum.Length==6) { return true; } else { return false; } } //下一步按钮 private void RegisterNext() { if (CodeType == "user_register") { string code = ServiceHelper.Register_email(RegisterDialogViewModel.RegisterEmail, RegisterDialogViewModel.RegisterPassword, Codesum, uuid); if (code == "200") { App.mainWindowViewModel.UserVis = Visibility.Visible; App.mainWindowViewModel.RegisterVis = Visibility.Collapsed; App.mainWindowViewModel.LoginVis = Visibility.Collapsed; App.mainWindowViewModel.OphVis = Visibility.Collapsed; Settings.Default.UserDate.Email = RegisterDialogViewModel.RegisterEmail; //RegisterDialogViewModel.RegionMan("RegisterOKRegion"); Codeclear(); RegisterDialogViewModel.Close(); App.mainWindowViewModel.OpenRegisterOK(); } else { EnableNextStep = false; RegisterCodemsg = ErrorCodeHelper.Ercode(code); Bordcolor = "#F3465B"; BottomBackgroubd = "#FDC7C6"; RegisterCodemsgVis = Visibility.Visible; } } else { LoginDialogViewModel.PasswordCode = Codesum; LoginDialogViewModel.RegionMan("PasswordUpdataRegion"); Codeclear(); } } //第六个密码框改变 private void Code6Changed() { Codesum = Code1 + Code2 + Code3 + Code4 + Code5 + Code6; if (CodeSum() ==true) { if (CodeType == "user_register") { string code = ServiceHelper.Ok_code(RegisterDialogViewModel.RegisterEmail, Codesum, CodeType); if (code == "200") { EnableNextStep = true; RegisterCodemsgVis = Visibility.Collapsed; } else { EnableNextStep = false; RegisterCodemsg = ErrorCodeHelper.Ercode(code); Bordcolor = "#F3465B"; BottomBackgroubd = "#FDC7C6"; RegisterCodemsgVis = Visibility.Visible; } } else { string code = ServiceHelper.Ok_code(LoginDialogViewModel.LoginEmail, Codesum, CodeType); if (code == "200") { EnableNextStep = true; } else { EnableNextStep = false; RegisterCodemsg = ErrorCodeHelper.Ercode(code); Bordcolor = "#F3465B"; BottomBackgroubd = "#FDC7C6"; RegisterCodemsgVis = Visibility.Visible; } } } else { EnableNextStep = false; } } //重发密码 private void Codetoo() { time = 60; Codeagin = Visibility.Collapsed; if (CodeType == "user_register") { ServiceHelper.Get_code(CodeType, RegisterDialogViewModel.RegisterEmail); } else if (CodeType == "user_reset_password") { ServiceHelper.Get_code(CodeType, LoginDialogViewModel.LoginEmail); } } //计数 public void disTimer_Tick(object sender, EventArgs e) { if (time == 0) { Codeagin = Visibility.Visible; Codetime = " "; } else { time--; Codetime = " ("+time.ToString()+")"; } } //计时器 private DispatcherTimer disTimer = new DispatcherTimer(); public void Timebegin() { time = 60; //设置定时器 disTimer.Tick += new EventHandler(disTimer_Tick);//每一秒执行的方法 disTimer.Interval = new TimeSpan(10000000); //时间间隔为一秒。 disTimer.Start();//计时开始 } //判断验证类型 private void BackRegisterLast() { if(CodeType== "user_register") { RegisterDialogViewModel.RegionMan("RegisterRegion"); } else if(CodeType == "user_reset_password") { LoginDialogViewModel.RegionMan("LoginPasswordRegion"); } Codeclear(); } } }