using System; using System.Diagnostics; using System.Runtime.InteropServices; using System.Windows; using System.Windows.Controls; using System.Windows.Media; using PDF_Master.CustomControl; using PDF_Master.Helper; using PDF_Master.Properties; using Prism.Commands; using Prism.Mvvm; using Prism.Regions; using Prism.Services.Dialogs; namespace PDF_Master.ViewModels.Dialog.ServiceDialog { public class UserDialogViewModel : BindableBase, IDialogAware { private string uuid = ServiceHelper.GetDeviceSerialNumber(); public IRegionManager Region; public string Title => ""; public event Action RequestClose; public void Close() { RequestClose?.Invoke(new Prism.Services.Dialogs.DialogResult(ButtonResult.Cancel)); } public bool CanCloseDialog() { return true; } public void OnDialogClosed() { } public void OnDialogOpened(IDialogParameters parameters) { if (ServiceHelper. IsConnectInternet()==false) { RegionMan("NOInternetRegion"); } } #region 文案 private string _Text_useracc = ""; public string Text_useracc { get { return _Text_useracc; } set { SetProperty(ref _Text_useracc, value); } } private string _Text_admail = ""; public string Text_admail { get { return _Text_admail; } set { SetProperty(ref _Text_admail, value); } } private string _Text_logout = ""; public string Text_logout { get { return _Text_logout; } set { SetProperty(ref _Text_logout, value); } } private string _Text_no = ""; public string Text_no { get { return _Text_no; } set { SetProperty(ref _Text_no, value); } } private string _Text_yes = ""; public string Text_yes { get { return _Text_yes; } set { SetProperty(ref _Text_yes, value); } } private string _Text_useroutmsg = ""; public string Text_useroutmsg { get { return _Text_useroutmsg; } set { SetProperty(ref _Text_useroutmsg, value); } } private string _Text_userouttol = ""; public string Text_userouttol { get { return _Text_userouttol; } set { SetProperty(ref _Text_userouttol, value); } } private Brush _TextSubscribeStateColor = (Brush)new BrushConverter().ConvertFromString("#252629"); public Brush TextSubscribeStateColor { get { return _TextSubscribeStateColor; } set { SetProperty(ref _TextSubscribeStateColor, value); } } private string _TextSubscribeState = ""; public string TextSubscribeState { get { return _TextSubscribeState; } set { SetProperty(ref _TextSubscribeState, value); } } private string _TextSubscribeEndtime = ""; public string TextSubscribeEndtime { get { return _TextSubscribeEndtime; } set { SetProperty(ref _TextSubscribeEndtime, value); } } private string _TextSubscribetimetext = ""; public string TextSubscribetimetext { get { return _TextSubscribetimetext; } set { SetProperty(ref _TextSubscribetimetext, value); } } private void InitString() { Text_useracc = App.ServiceLoader.GetString("Text_useracc"); Text_admail = App.ServiceLoader.GetString("Text_admail"); Text_logout = App.ServiceLoader.GetString("Text_logout"); Text_userouttol = App.ServiceLoader.GetString("Text_userouttol"); Text_useroutmsg = App.ServiceLoader.GetString("Text_useroutmsg"); Text_yes = App.ServiceLoader.GetString("Text_yes"); Text_no = App.ServiceLoader.GetString("Text_no"); } #endregion private string _Useremailchar = Settings.Default.UserDate.Email.Substring(0, 1); public string Useremailchar { get { return _Useremailchar; } set { SetProperty(ref _Useremailchar, value); } } private string _UserEmail = Settings.Default.UserDate.Email; public string UserEmail { get { return _UserEmail; } set { _UserEmail = value; } } private string _UserRegionName; public string UserRegionName { get { return _UserRegionName; } set { _UserRegionName = value; } } private Visibility _Subscriptionbox =Visibility.Collapsed; public Visibility Subscriptionbox { get { return _Subscriptionbox; } set { _Subscriptionbox = value; } } private Visibility _Subscriptionbtn = Visibility.Collapsed; public Visibility Subscriptionbtn { get { return _Subscriptionbtn; } set { _Subscriptionbtn = value; } } private Visibility _Subscriptionauto = Visibility.Collapsed; public Visibility Subscriptionauto { get { return _Subscriptionauto; } set { _Subscriptionauto = value; } } private string _uristore = "https://www.pdfreaderpro.com/windows/store/permanent"; public string Uristore { get { return _uristore; } set { SetProperty(ref _uristore, value); } } public DelegateCommand LinkstoreCommand { get; set; } public DelegateCommand UserOutCommand { get; set; } public DelegateCommand LogOutCommand { get; set; } UserDialogViewModel(IRegionManager regionManager, IDialogService dialogService) { this.Region = regionManager; InitString(); UserRegionName = Guid.NewGuid().ToString(); UserOutCommand = new DelegateCommand(UserOut); LogOutCommand = new DelegateCommand(LogOut); LinkstoreCommand = new DelegateCommand(Linkstore); TextSubscribeEndtime = Settings.Default.UserDate.subscribeendDate; UserEmail = Settings.Default.UserDate.Email; if(Settings.Default.UserDate.subscribestatus==1&& Settings.Default.UserDate.subscribepayType==1) { Subscriptionbox = Visibility.Visible; Subscriptionauto= Visibility.Visible; TextSubscribeState= App.ServiceLoader.GetString("TextSubscribeStateOnTrial"); TextSubscribeStateColor = (Brush)new BrushConverter().ConvertFromString("#252629"); TextSubscribetimetext = App.ServiceLoader.GetString("TextSubscribetimetextOnTrial"); } else if(Settings.Default.UserDate.subscribestatus == 1 && Settings.Default.UserDate.subscribepayType == 0) { Subscriptionbox = Visibility.Visible; Subscriptionbtn = Visibility.Visible; Subscriptionauto = Visibility.Hidden; TextSubscribeState = App.ServiceLoader.GetString("TextSubscribeStateOnTrial"); TextSubscribeStateColor = (Brush)new BrushConverter().ConvertFromString("#252629"); TextSubscribetimetext = App.ServiceLoader.GetString("TextSubscribetimetextOnTrial"); } else if (Settings.Default.UserDate.subscribestatus == 2 ) { Subscriptionbox = Visibility.Visible; Subscriptionbtn = Visibility.Visible; Subscriptionauto = Visibility.Hidden; TextSubscribeState = App.ServiceLoader.GetString("TextSubscribeStateExpired"); TextSubscribeStateColor= (Brush)new BrushConverter().ConvertFromString("#F3465B"); TextSubscribetimetext = App.ServiceLoader.GetString("TextSubscribetimeExpired"); } else { Subscriptionbox = Visibility.Collapsed; Subscriptionbtn = Visibility.Collapsed; TextSubscribeState = App.ServiceLoader.GetString("TextSubscribeStateExpired"); TextSubscribeStateColor = (Brush)new BrushConverter().ConvertFromString("#F3465B"); TextSubscribetimetext = App.ServiceLoader.GetString("TextSubscribetimeExpired"); } } private void Linkstore() { Process.Start(new ProcessStartInfo(Uristore)); } public void UserOut() { if(Settings.Default.UserDate.subscribestatus == 1) { AlertsMessage alertsMessage = new AlertsMessage(); alertsMessage.ShowDialog("注不了销 ", "无法注销,需要订阅期结束后再申请注销 ", App.ServiceLoader.GetString("Text_yes"),IconType.Tip); } else { AlertsMessage alertsMessage = new AlertsMessage(); alertsMessage.ShowDialog(Text_userouttol, Text_useroutmsg, App.ServiceLoader.GetString("Text_yes"), App.ServiceLoader.GetString("Text_no"), IconType.Tip); //调整按钮显示位置,cancel按钮表示确认退出 //目的是尽量引导用户不注销 if (alertsMessage.result == ContentResult.MiddleCancel) { RegionMan("UserOutCodeRegion"); } } } public void LogOut() { ServiceHelper.Logout(uuid); Settings.Default.AppProperties.LoginToken = ""; Settings.Default.Save(); App.mainWindowViewModel.UserVis = Visibility.Collapsed; App.mainWindowViewModel.RegisterVis = Visibility.Collapsed; App.mainWindowViewModel.LoginVis = Visibility.Visible; Close(); } public void RegionMan(string name) { NavigationParameters param = new NavigationParameters(); param.Add("UserDialogViewModel", this); Region.RequestNavigate(UserRegionName, name, e => { var r = e.Result; }, param); } } }