using PDF_Office.Helper; using PDF_Office.Model; using Prism.Commands; using Prism.Mvvm; using Prism.Regions; using Prism.Services.Dialogs; using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Text; using System.Text.RegularExpressions; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; namespace PDF_Office.ViewModels.Dialog.ServiceDialog { public class RegisterRegionViewModel : BindableBase, INavigationAware { private RegisterDialogViewModel RegisterDialogViewModel; public IDialogService dialogs; public bool IsNavigationTarget(NavigationContext navigationContext) { return true; } public void OnNavigatedFrom(NavigationContext navigationContext) { } public void OnNavigatedTo(NavigationContext navigationContext) { navigationContext.Parameters.TryGetValue("RegisterDialogViewModel", out RegisterDialogViewModel); } private bool enableNextStep = false; public bool EnableNextStep { get { return enableNextStep; } set { SetProperty(ref enableNextStep, value); } } private string _registerEmaillook; public string RegisterEmaillook { get { return _registerEmaillook; } set { SetProperty(ref _registerEmaillook, value); } } private string _registerePasswordlook; public string RegisterePasswordlook { get { return _registerePasswordlook; } set { SetProperty(ref _registerePasswordlook, value); } } private string _uriPolivy = "https://www.pdfreaderpro.com/privacy-policy"; public string UriPolivy { get { return _uriPolivy; } set { SetProperty(ref _uriPolivy, value); } } private string _uriLicense = "https://www.pdfreaderpro.com/terms_of_service"; public string UriLicense { get { return _uriLicense; } set { SetProperty(ref _uriLicense, value); } } private bool _isRegisterPasswordDisplayed = false; public bool IsRegisterPasswordDisplayed { get { return _isRegisterPasswordDisplayed; } set { SetProperty(ref _isRegisterPasswordDisplayed, value); } } private string _registerText1 = "Already have an account?"; public string Registertext1 { get { return _registerText1; } set { SetProperty(ref _registerText1, value); } } private string _registerNextStep = "Next Step"; public string RegisterNextStep { get { return _registerNextStep; } set { SetProperty(ref _registerNextStep, value); } } private string _registerPassword = ""; public string RegisterPassword { get { return _registerPassword; } set { SetProperty(ref _registerPassword, value); if (string.IsNullOrEmpty(RegisterPassword)) { ChkVis = Visibility.Collapsed; } else { ChkVis = Visibility.Visible; } CheckEnableNextStepEncrypt(); } } private string _registerEmail = ""; public string RegisterEmail { get { return _registerEmail; } set { SetProperty(ref _registerEmail, value); if(RegisterEmail=="") { RegisterEmaillook = ""; } else { CheckMail(RegisterEmail); } CheckEnableNextStepEncrypt(); } } private string _registerEmailMsg = "Enter email address"; public string RegisterEmailMsg { get { return _registerEmailMsg; } set { SetProperty(ref _registerEmailMsg, value); } } private string _registerPasswordMsg = "Enter your password"; public string RegisterPasswordMsg { get { return _registerPasswordMsg; } set { SetProperty(ref _registerPasswordMsg, value); } } private Visibility _registerPasswordVisibility = Visibility.Visible; public Visibility RegisterPasswordVisibility { get { return _registerPasswordVisibility; } set { if (value == Visibility.Visible) { RegisterTextVisibility = Visibility.Collapsed; } else { RegisterTextVisibility = Visibility.Visible; } SetProperty(ref _registerPasswordVisibility, value); } } private Visibility _ChkVis = Visibility.Collapsed; public Visibility ChkVis { get { return _ChkVis; } set { SetProperty(ref _ChkVis, value); } } private Visibility _registerTextVisibility = Visibility.Collapsed; public Visibility RegisterTextVisibility { get { return _registerTextVisibility; } set { SetProperty(ref _registerTextVisibility, value); } } private bool _isPermissionsPasswordDisplayed = false; public bool IsPermissionsPasswordDisplayed { get { return _isPermissionsPasswordDisplayed; } set { SetProperty(ref _isPermissionsPasswordDisplayed, value); } } public DelegateCommand DisplayPasswordCommand { get; set; } public DelegateCommand LinkPolicyCommand { get; set; } public DelegateCommand CloseDialogCommand { get; set; } public DelegateCommand RegisterNextCommand { get; set; } public DelegateCommand GoLoginCommand { get; set; } public DelegateCommand RegisterPasswordChangedCommand { get; set; } public DelegateCommand LinkLicenseCommand { get; set; } RegisterRegionViewModel(IRegionManager regionManager, IDialogService dialogService) { dialogs = dialogService; DisplayPasswordCommand = new DelegateCommand(DisplayPassword); LinkPolicyCommand = new DelegateCommand(LinkPolicy); LinkLicenseCommand = new DelegateCommand(LinkLicense); GoLoginCommand = new DelegateCommand(GoLogin); RegisterNextCommand = new DelegateCommand(RegisterNext); CloseDialogCommand = new DelegateCommand(CloseDialog); RegisterPasswordChangedCommand = new DelegateCommand(RegisterPasswordChanged); } private void RegisterPasswordChanged() { if(RegisterPassword.Length<6) { RegisterePasswordlook = "At least 6 characters"; } else if(RegisterPassword.Length>24) { RegisterePasswordlook = "Up to 24 characters"; } else { RegisterePasswordlook = ""; } } private void CheckMail(string mail) { string str = "^([a-z0-9_\\.-]+)@([\\da-z\\.-]+)\\.([a-z\\.]{2,6})$"; Regex mReg = new Regex(str); if (mReg.IsMatch(mail)) { RegisterEmaillook = ""; } else { RegisterEmaillook = "请输入正确的邮箱格式"; } } private void CloseDialog() { RegisterDialogViewModel.Close(); } private void RegisterNext() { if(ServiceHelper.Ok_email(RegisterEmail, "2")== "success") { RegisterDialogViewModel.RegisterEmail = RegisterEmail; RegisterDialogViewModel.RegisterPassword = RegisterPassword; ServiceHelper.Get_code("user_register", RegisterEmail); RegisterDialogViewModel.RegionMan( "CodeRegion"); App.mainWindowViewModel.UserVis = Visibility.Visible; App.mainWindowViewModel.RegisterVis = Visibility.Collapsed; App.mainWindowViewModel.LoginVis = Visibility.Collapsed; } else { RegisterEmaillook = ServiceHelper.Ok_email(RegisterEmail, "2"); } } public void SetOpenPassword(object e) { var chk = e as CheckBox; if (chk != null) { IsRegisterPasswordDisplayed = false; RegisterPasswordVisibility = Visibility.Visible; } CheckEnableNextStepEncrypt(); } private void GoLogin() { RegisterDialogViewModel.Close(); App.mainWindowViewModel.OpenLogin(); } private void LinkPolicy() { Process.Start(new ProcessStartInfo(UriPolivy)); } private void LinkLicense() { Process.Start(new ProcessStartInfo(UriLicense)); } private void CheckEnableNextStepEncrypt() { EnableNextStep = true; if (RegisterPassword.Length<6|| RegisterPassword.Length >24 || string.IsNullOrEmpty(RegisterEmail)|| RegisterEmaillook!="") { EnableNextStep = false; } } public void DisplayPassword(object e) { var chk = e as CheckBox; if (chk != null) { if (chk.IsChecked == true) { RegisterPasswordVisibility = Visibility.Collapsed; } else { RegisterPasswordVisibility = Visibility.Visible; } } } } }