UserDialogViewModel.cs 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279
  1. using System;
  2. using System.Diagnostics;
  3. using System.Runtime.InteropServices;
  4. using System.Windows;
  5. using System.Windows.Controls;
  6. using PDF_Master.CustomControl;
  7. using PDF_Master.Helper;
  8. using PDF_Master.Properties;
  9. using Prism.Commands;
  10. using Prism.Mvvm;
  11. using Prism.Regions;
  12. using Prism.Services.Dialogs;
  13. namespace PDF_Master.ViewModels.Dialog.ServiceDialog
  14. {
  15. public class UserDialogViewModel : BindableBase, IDialogAware
  16. {
  17. private string uuid = ServiceHelper.GetDeviceSerialNumber();
  18. public IRegionManager Region;
  19. public string Title => "";
  20. public event Action<IDialogResult> RequestClose;
  21. public void Close()
  22. {
  23. RequestClose?.Invoke(new Prism.Services.Dialogs.DialogResult(ButtonResult.Cancel));
  24. }
  25. public bool CanCloseDialog()
  26. {
  27. return true;
  28. }
  29. public void OnDialogClosed()
  30. {
  31. }
  32. public void OnDialogOpened(IDialogParameters parameters)
  33. {
  34. if (ServiceHelper. IsConnectInternet()==false)
  35. {
  36. RegionMan("NOInternetRegion");
  37. }
  38. }
  39. #region 文案
  40. private string _Text_useracc = "";
  41. public string Text_useracc
  42. {
  43. get { return _Text_useracc; }
  44. set
  45. {
  46. SetProperty(ref _Text_useracc, value);
  47. }
  48. }
  49. private string _Text_admail = "";
  50. public string Text_admail
  51. {
  52. get { return _Text_admail; }
  53. set
  54. {
  55. SetProperty(ref _Text_admail, value);
  56. }
  57. }
  58. private string _Text_logout = "";
  59. public string Text_logout
  60. {
  61. get { return _Text_logout; }
  62. set
  63. {
  64. SetProperty(ref _Text_logout, value);
  65. }
  66. }
  67. private string _Text_no = "";
  68. public string Text_no
  69. {
  70. get { return _Text_no; }
  71. set
  72. {
  73. SetProperty(ref _Text_no, value);
  74. }
  75. }
  76. private string _Text_yes = "";
  77. public string Text_yes
  78. {
  79. get { return _Text_yes; }
  80. set
  81. {
  82. SetProperty(ref _Text_yes, value);
  83. }
  84. }
  85. private string _Text_useroutmsg = "";
  86. public string Text_useroutmsg
  87. {
  88. get { return _Text_useroutmsg; }
  89. set
  90. {
  91. SetProperty(ref _Text_useroutmsg, value);
  92. }
  93. }
  94. private string _Text_userouttol = "";
  95. public string Text_userouttol
  96. {
  97. get { return _Text_userouttol; }
  98. set
  99. {
  100. SetProperty(ref _Text_userouttol, value);
  101. }
  102. }
  103. private void InitString()
  104. {
  105. Text_useracc = App.ServiceLoader.GetString("Text_useracc");
  106. Text_admail = App.ServiceLoader.GetString("Text_admail");
  107. Text_logout = App.ServiceLoader.GetString("Text_logout");
  108. Text_userouttol = App.ServiceLoader.GetString("Text_userouttol");
  109. Text_useroutmsg = App.ServiceLoader.GetString("Text_useroutmsg");
  110. Text_yes = App.ServiceLoader.GetString("Text_yes");
  111. Text_no = App.ServiceLoader.GetString("Text_no");
  112. }
  113. #endregion
  114. private string _Useremailchar = Settings.Default.UserDate.Email.Substring(0, 1);
  115. public string Useremailchar
  116. {
  117. get { return _Useremailchar; }
  118. set
  119. {
  120. SetProperty(ref _Useremailchar, value);
  121. }
  122. }
  123. private string _UserEmail = Settings.Default.UserDate.Email;
  124. public string UserEmail
  125. {
  126. get { return _UserEmail; }
  127. set { _UserEmail = value; }
  128. }
  129. private string _UserRegionName;
  130. public string UserRegionName
  131. {
  132. get { return _UserRegionName; }
  133. set { _UserRegionName = value; }
  134. }
  135. private Visibility _Subscriptionbox =Visibility.Collapsed;
  136. public Visibility Subscriptionbox
  137. {
  138. get { return _Subscriptionbox; }
  139. set { _Subscriptionbox = value; }
  140. }
  141. private Visibility _Subscriptionbtn = Visibility.Collapsed;
  142. public Visibility Subscriptionbtn
  143. {
  144. get { return _Subscriptionbtn; }
  145. set { _Subscriptionbtn = value; }
  146. }
  147. private Visibility _Subscriptionauto = Visibility.Collapsed;
  148. public Visibility Subscriptionauto
  149. {
  150. get { return _Subscriptionauto; }
  151. set { _Subscriptionauto = value; }
  152. }
  153. private string _uristore = "https://www.pdfreaderpro.com/windows/store/permanent";
  154. public string Uristore
  155. {
  156. get { return _uristore; }
  157. set
  158. {
  159. SetProperty(ref _uristore, value);
  160. }
  161. }
  162. public DelegateCommand LinkstoreCommand { get; set; }
  163. public DelegateCommand UserOutCommand { get; set; }
  164. public DelegateCommand LogOutCommand { get; set; }
  165. UserDialogViewModel(IRegionManager regionManager, IDialogService dialogService)
  166. {
  167. this.Region = regionManager;
  168. InitString();
  169. UserRegionName = Guid.NewGuid().ToString();
  170. UserOutCommand = new DelegateCommand(UserOut);
  171. LogOutCommand = new DelegateCommand(LogOut);
  172. LinkstoreCommand = new DelegateCommand(Linkstore);
  173. UserEmail = Settings.Default.UserDate.Email;
  174. if(Settings.Default.UserDate.subscriberType=="1")
  175. {
  176. Subscriptionbox = Visibility.Visible;
  177. }
  178. else if(Settings.Default.UserDate.subscriberType == "2")
  179. {
  180. Subscriptionbtn = Visibility.Visible;
  181. }
  182. else
  183. {
  184. Subscriptionbox = Visibility.Collapsed;
  185. Subscriptionbtn = Visibility.Collapsed;
  186. }
  187. }
  188. private void Linkstore()
  189. {
  190. Process.Start(new ProcessStartInfo(Uristore));
  191. }
  192. public void UserOut()
  193. {
  194. AlertsMessage alertsMessage = new AlertsMessage();
  195. alertsMessage.ShowDialog(Text_userouttol, Text_useroutmsg, App.ServiceLoader.GetString("Text_yes"), App.ServiceLoader.GetString("Text_no"), IconType.Tip);
  196. //调整按钮显示位置,cancel按钮表示确认退出
  197. //目的是尽量引导用户不注销
  198. if (alertsMessage.result == ContentResult.MiddleCancel)
  199. {
  200. RegionMan("UserOutCodeRegion");
  201. }
  202. }
  203. public void LogOut()
  204. {
  205. ServiceHelper.Logout(uuid);
  206. Settings.Default.AppProperties.LoginToken = "";
  207. Settings.Default.Save();
  208. App.mainWindowViewModel.UserVis = Visibility.Collapsed;
  209. App.mainWindowViewModel.RegisterVis = Visibility.Collapsed;
  210. App.mainWindowViewModel.LoginVis = Visibility.Visible;
  211. Close();
  212. }
  213. public void RegionMan(string name)
  214. {
  215. NavigationParameters param = new NavigationParameters();
  216. param.Add("UserDialogViewModel", this);
  217. Region.RequestNavigate(UserRegionName, name, e => {
  218. var r = e.Result;
  219. }, param);
  220. }
  221. }
  222. }