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() { App.UserOpen = false; } public void OnDialogOpened(IDialogParameters parameters) { } #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_cancel = ""; public string Text_cancel { get { return _Text_cancel; } set { SetProperty(ref _Text_cancel, 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 string _TextStatus; public string TextStatus { get { return _TextStatus; } set { _TextStatus = value; } } private string _TextOnTrial; public string TextOnTrial { get { return _TextOnTrial; } set { _TextOnTrial = value; } } private string _TextTrialExpired; public string TextTrialExpired { get { return _TextTrialExpired; } set { _TextTrialExpired = value; } } private string _TextSubscriptionExpired; public string TextSubscriptionExpired { get { return _TextSubscriptionExpired; } set { _TextSubscriptionExpired = value; } } private string _TextAutorenewal; public string TextAutorenewal { get { return _TextAutorenewal; } set { _TextAutorenewal = value; } } private string _TextSubscription; public string TextSubscription { get { return _TextSubscription; } set { _TextSubscription = value; } } private string _TextOrderInformation; public string TextOrderInformation { get { return _TextOrderInformation; } set { _TextOrderInformation = value; } } private string _BtnTextSubscribe; public string BtnTextSubscribe { get { return _BtnTextSubscribe; } set { _BtnTextSubscribe = 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_cancel = App.ServiceLoader.GetString("Text_cancel"); 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"); TextStatus = App.ServiceLoader.GetString("TextStatus"); TextOnTrial = App.ServiceLoader.GetString("TextOnTrial"); TextTrialExpired = App.ServiceLoader.GetString("TextTrialExpired"); TextSubscriptionExpired = App.ServiceLoader.GetString("TextSubscriptionExpired"); TextAutorenewal = App.ServiceLoader.GetString("TextAutorenewal"); TextSubscription = App.ServiceLoader.GetString("TextSubscription"); TextOrderInformation = App.ServiceLoader.GetString("TextOrderInformation"); BtnTextSubscribe = App.ServiceLoader.GetString("BtnTextSubscribe"); } #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 _LinkuserdataVis = Visibility.Collapsed; public Visibility LinkuserdataVis { get { return _LinkuserdataVis; } set { _LinkuserdataVis = 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 = ServiceHelper.WebHost + "/windows/store/master-subscription?email=" + Settings.Default.UserDate.Email; public string Uristore { get { return _uristore; } set { SetProperty(ref _uristore, value); } } private string _Uriuserdata = ServiceHelper.WebHost + "/windows/account/master-subscription?appid=16&productId=22&token=" + Settings.Default.AppProperties.LoginToken; public string Uriuserdata { get { return _Uriuserdata; } set { SetProperty(ref _Uriuserdata, value); } } public DelegateCommand LinkstoreCommand { get; set; } public DelegateCommand UserOutCommand { get; set; } public DelegateCommand LogOutCommand { get; set; } public DelegateCommand LinkuserdataCommand { 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); LinkuserdataCommand = new DelegateCommand(Linkuserdata); TextSubscribeEndtime = Settings.Default.UserDate.subscribeendDate; UserEmail = Settings.Default.UserDate.Email; if(Settings.Default.UserDate.subscribestatus==1&& Settings.Default.UserDate.subscribepayType==1) { LinkuserdataVis = Visibility.Collapsed; 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) { LinkuserdataVis = Visibility.Collapsed; Subscriptionbox = Visibility.Visible; Subscriptionbtn = Visibility.Visible; Subscriptionauto = Visibility.Hidden; TextSubscribeState = App.ServiceLoader.GetString("TextSubscribeStateOnTrial"); TextSubscribeStateColor = (Brush)new BrushConverter().ConvertFromString("#252629"); TextSubscribetimetext = App.ServiceLoader.GetString("TextSubscribetimeExpired"); } else if (Settings.Default.UserDate.subscribestatus == 2 ) { LinkuserdataVis = Visibility.Collapsed; 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 { LinkuserdataVis = Visibility.Visible; 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)); } private void Linkuserdata() { Process.Start(new ProcessStartInfo(Uriuserdata)); } public void UserOut() { if(Settings.Default.UserDate.subscribestatus == 1) { AlertsMessage alertsMessage = new AlertsMessage(); alertsMessage.ShowDialog(App.ServiceLoader.GetString("TextCancellationtop"), App.ServiceLoader.GetString("TextCancellation"), App.ServiceLoader.GetString("Text_ok"),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); } } }