CodeRegionViewModel.cs 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499
  1. using PDF_Master.Helper;
  2. using PDF_Master.Properties;
  3. using Prism.Commands;
  4. using Prism.Mvvm;
  5. using Prism.Regions;
  6. using Prism.Services.Dialogs;
  7. using System;
  8. using System.Collections.Generic;
  9. using System.Linq;
  10. using System.Text;
  11. using System.Threading.Tasks;
  12. using System.Windows;
  13. using System.Windows.Threading;
  14. namespace PDF_Master.ViewModels.Dialog.ServiceDialog
  15. {
  16. public class CodeRegionViewModel : BindableBase, INavigationAware
  17. {
  18. private string uuid = ServiceHelper.GetDeviceSerialNumber();
  19. private RegisterDialogViewModel RegisterDialogViewModel;
  20. private LoginDialogViewModel LoginDialogViewModel;
  21. public IDialogService dialogs;
  22. private ErrorCodeHelper ErrorCodeHelper = new ErrorCodeHelper();
  23. //60秒倒计时
  24. private int time = 60;
  25. #region 文案
  26. private string _Text_Signup = "";
  27. public string Text_Signup
  28. {
  29. get { return _Text_Signup; }
  30. set { SetProperty(ref _Text_Signup, value); }
  31. }
  32. private string _Text_toocode = "";
  33. public string Text_toocode
  34. {
  35. get { return _Text_toocode; }
  36. set { SetProperty(ref _Text_toocode, value); }
  37. }
  38. private string _Text_vcode = "";
  39. public string Text_vcode
  40. {
  41. get { return _Text_vcode; }
  42. set { SetProperty(ref _Text_vcode, value); }
  43. }
  44. private string _Text_novcode = "";
  45. public string Text_novcode
  46. {
  47. get { return _Text_novcode; }
  48. set { SetProperty(ref _Text_novcode, value); }
  49. }
  50. private string _Text_recode = "";
  51. public string Text_recode
  52. {
  53. get { return _Text_recode; }
  54. set { SetProperty(ref _Text_recode, value); }
  55. }
  56. private string _Text_back = "";
  57. public string Text_back
  58. {
  59. get { return _Text_back; }
  60. set { SetProperty(ref _Text_back, value); }
  61. }
  62. private void InitString()
  63. {
  64. Text_Signup = App.ServiceLoader.GetString("Text_Signup");
  65. Text_toocode = App.ServiceLoader.GetString("Text_toocode");
  66. Text_vcode = App.ServiceLoader.GetString("Text_vcode");
  67. Text_novcode = App.ServiceLoader.GetString("Text_novcode");
  68. Text_recode = App.ServiceLoader.GetString("Text_recode");
  69. Text_back = App.ServiceLoader.GetString("Text_back");
  70. }
  71. #endregion
  72. private bool _EnableNextStep = true;
  73. public bool EnableNextStep
  74. {
  75. get { return _EnableNextStep; }
  76. set { SetProperty(ref _EnableNextStep, value); }
  77. }
  78. private string _CodeTypeName = "";
  79. public string CodeTypeName
  80. {
  81. get { return _CodeTypeName; }
  82. set { SetProperty(ref _CodeTypeName, value); }
  83. }
  84. private string _CodeType = "";
  85. public string CodeType
  86. {
  87. get { return _CodeType; }
  88. set { SetProperty(ref _CodeType, value); }
  89. }
  90. private string _codetime = "60";
  91. public string Codetime
  92. {
  93. get { return _codetime; }
  94. set { SetProperty(ref _codetime, value); }
  95. }
  96. private string _Codesum = "";
  97. public string Codesum
  98. {
  99. get { return _Codesum; }
  100. set { SetProperty(ref _Codesum, value); }
  101. }
  102. private string _Code1 = "";
  103. public string Code1
  104. {
  105. get { return _Code1; }
  106. set { SetProperty(ref _Code1, value);
  107. if( CodeSum())
  108. {
  109. Code6Changed();
  110. }
  111. }
  112. }
  113. private string _Code2 = "";
  114. public string Code2
  115. {
  116. get { return _Code2; }
  117. set { SetProperty(ref _Code2, value);
  118. if (CodeSum())
  119. {
  120. Code6Changed();
  121. }
  122. }
  123. }
  124. private string _Code3 = "";
  125. public string Code3
  126. {
  127. get { return _Code3; }
  128. set { SetProperty(ref _Code3, value);
  129. if (CodeSum())
  130. {
  131. Code6Changed();
  132. }
  133. }
  134. }
  135. private string _Code4 = "";
  136. public string Code4
  137. {
  138. get { return _Code4; }
  139. set { SetProperty(ref _Code4, value);
  140. if (CodeSum())
  141. {
  142. Code6Changed();
  143. }
  144. }
  145. }
  146. private string _Code5 = "";
  147. public string Code5
  148. {
  149. get { return _Code5; }
  150. set { SetProperty(ref _Code5, value);
  151. if (CodeSum())
  152. {
  153. Code6Changed();
  154. }
  155. }
  156. }
  157. private string _Code6 = "";
  158. public string Code6
  159. {
  160. get { return _Code6; }
  161. set { SetProperty(ref _Code6, value); }
  162. }
  163. private string _RegisterCodemsg = "";
  164. public string RegisterCodemsg
  165. {
  166. get { return _RegisterCodemsg; }
  167. set { SetProperty(ref _RegisterCodemsg, value); }
  168. }
  169. private Visibility _codeagin = Visibility.Collapsed;
  170. public Visibility Codeagin
  171. {
  172. get { return _codeagin; }
  173. set { SetProperty(ref _codeagin, value); }
  174. }
  175. private Visibility _RegisterCodemsgVis = Visibility.Collapsed;
  176. public Visibility RegisterCodemsgVis
  177. {
  178. get { return _RegisterCodemsgVis; }
  179. set { SetProperty(ref _RegisterCodemsgVis, value); }
  180. }
  181. public bool IsNavigationTarget(NavigationContext navigationContext)
  182. {
  183. return true;
  184. }
  185. public void OnNavigatedFrom(NavigationContext navigationContext)
  186. {
  187. }
  188. public void OnNavigatedTo(NavigationContext navigationContext)
  189. {
  190. navigationContext.Parameters.TryGetValue<RegisterDialogViewModel>("RegisterDialogViewModel", out RegisterDialogViewModel);
  191. navigationContext.Parameters.TryGetValue<LoginDialogViewModel>("LoginDialogViewModel", out LoginDialogViewModel);
  192. InitString();
  193. if (LoginDialogViewModel!=null&&LoginDialogViewModel.IsReset == true)
  194. {
  195. CodeType = "user_reset_password";
  196. LoginDialogViewModel.IsReset = false;
  197. }
  198. else
  199. {
  200. CodeType = "user_register";
  201. }
  202. if (CodeType == "user_reset_password")
  203. {
  204. CodeTypeName = Text_toocode;
  205. }
  206. else
  207. {
  208. CodeTypeName = Text_Signup;
  209. }
  210. }
  211. public DelegateCommand BackRegisterLastCommand { get; set; }
  212. public DelegateCommand CodetooCommand { get; set; }
  213. public DelegateCommand Code6ChangedCommand { get; set; }
  214. public DelegateCommand RegisterNextCommand { get; set; }
  215. public CodeRegionViewModel(IRegionManager regionManager, IDialogService dialogService)
  216. {
  217. Timebegin();
  218. dialogs = dialogService;
  219. BackRegisterLastCommand = new DelegateCommand(BackRegisterLast);
  220. CodetooCommand = new DelegateCommand(Codetoo);
  221. Code6ChangedCommand = new DelegateCommand(Code6Changed);
  222. RegisterNextCommand = new DelegateCommand(RegisterNext);
  223. if (LoginDialogViewModel != null && LoginDialogViewModel.IsReset == true)
  224. {
  225. CodeType = "user_reset_password";
  226. LoginDialogViewModel.IsReset = false;
  227. }
  228. else
  229. {
  230. CodeType = "user_register";
  231. }
  232. if (CodeType == "user_reset_password")
  233. {
  234. CodeTypeName = Text_toocode;
  235. }
  236. else
  237. {
  238. CodeTypeName = Text_Signup;
  239. }
  240. }
  241. private bool CodeSum()
  242. {
  243. Codesum = Code1 + Code2 + Code3 + Code4 + Code5 + Code6;
  244. if(Codesum.Length==6)
  245. {
  246. return true;
  247. }
  248. else
  249. {
  250. return false;
  251. }
  252. }
  253. //下一步按钮
  254. private void RegisterNext()
  255. {
  256. Codesum = Code1 + Code2 + Code3 + Code4 + Code5 + Code6;
  257. if (Codesum.Length == 6)
  258. {
  259. if (CodeType == "user_register")
  260. {
  261. if (ServiceHelper.Ok_code(RegisterDialogViewModel.RegisterEmail, Codesum, CodeType) == "200")
  262. {
  263. if (ServiceHelper.Register_email(RegisterDialogViewModel.RegisterEmail, RegisterDialogViewModel.RegisterPassword, Codesum, uuid) == "200")
  264. {
  265. App.mainWindowViewModel.UserVis = Visibility.Visible;
  266. App.mainWindowViewModel.RegisterVis = Visibility.Collapsed;
  267. App.mainWindowViewModel.LoginVis = Visibility.Collapsed;
  268. App.mainWindowViewModel.OphVis = Visibility.Collapsed;
  269. Settings.Default.UserDate.Email = RegisterDialogViewModel.RegisterEmail;
  270. RegisterDialogViewModel.RegionMan("RegisterOKRegion");
  271. }
  272. else
  273. {
  274. RegisterCodemsg = ErrorCodeHelper.Ercode(ServiceHelper.Register_email(RegisterDialogViewModel.RegisterEmail, RegisterDialogViewModel.RegisterPassword, Codesum, uuid));
  275. RegisterCodemsgVis = Visibility.Visible;
  276. }
  277. }
  278. else
  279. {
  280. RegisterCodemsg = ErrorCodeHelper.Ercode(ErrorCodeHelper.Ercode(ServiceHelper.Ok_code(RegisterDialogViewModel.RegisterEmail, Codesum, CodeType)));
  281. RegisterCodemsgVis = Visibility.Visible;
  282. }
  283. }
  284. else
  285. {
  286. if (ServiceHelper.Ok_code(LoginDialogViewModel.LoginEmail, Codesum, CodeType) == "200")
  287. {
  288. LoginDialogViewModel.PasswordCode = Codesum;
  289. LoginDialogViewModel.RegionMan("PasswordUpdataRegion");
  290. }
  291. else
  292. {
  293. RegisterCodemsg = ErrorCodeHelper.Ercode(ServiceHelper.Ok_code(LoginDialogViewModel.LoginEmail, Codesum, CodeType));
  294. RegisterCodemsgVis = Visibility.Visible;
  295. }
  296. }
  297. }
  298. else
  299. {
  300. RegisterCodemsg = "Please enter a six digit verification code";
  301. }
  302. }
  303. //第六个密码框改变
  304. private void Code6Changed()
  305. {
  306. if(Code6.Length==1)
  307. {
  308. ;
  309. if (CodeSum() ==true)
  310. {
  311. if (CodeType == "user_register")
  312. {
  313. if (ServiceHelper.Ok_code(RegisterDialogViewModel.RegisterEmail, Codesum, CodeType) == "200")
  314. {
  315. if (ServiceHelper.Register_email(RegisterDialogViewModel.RegisterEmail, RegisterDialogViewModel.RegisterPassword, Codesum, uuid) == "200")
  316. {
  317. App.mainWindowViewModel.UserVis = Visibility.Visible;
  318. App.mainWindowViewModel.RegisterVis = Visibility.Collapsed;
  319. App.mainWindowViewModel.LoginVis = Visibility.Collapsed;
  320. App.mainWindowViewModel.OphVis = Visibility.Collapsed;
  321. Settings.Default.UserDate.Email = RegisterDialogViewModel.RegisterEmail;
  322. RegisterDialogViewModel.RegionMan("RegisterOKRegion");
  323. }
  324. else
  325. {
  326. RegisterCodemsg = ErrorCodeHelper.Ercode(ServiceHelper.Register_email(RegisterDialogViewModel.RegisterEmail, RegisterDialogViewModel.RegisterPassword, Codesum, uuid));
  327. RegisterCodemsgVis = Visibility.Visible;
  328. }
  329. }
  330. else
  331. {
  332. RegisterCodemsg = ErrorCodeHelper.Ercode(ServiceHelper.Ok_code(RegisterDialogViewModel.RegisterEmail, Codesum, CodeType));
  333. RegisterCodemsgVis = Visibility.Visible;
  334. }
  335. }
  336. else
  337. {
  338. if (ServiceHelper.Ok_code(LoginDialogViewModel.LoginEmail, Codesum, CodeType) == "200")
  339. {
  340. LoginDialogViewModel.PasswordCode = Codesum;
  341. LoginDialogViewModel.RegionMan("PasswordUpdataRegion");
  342. }
  343. else
  344. {
  345. RegisterCodemsg = ErrorCodeHelper.Ercode(ServiceHelper.Ok_code(LoginDialogViewModel.LoginEmail, Codesum, CodeType));
  346. RegisterCodemsgVis = Visibility.Visible;
  347. }
  348. }
  349. }
  350. else
  351. {
  352. RegisterCodemsg = "Please enter a six digit verification code";
  353. RegisterCodemsgVis = Visibility.Visible;
  354. }
  355. }
  356. }
  357. //重发密码
  358. private void Codetoo()
  359. {
  360. time = 60;
  361. Codeagin = Visibility.Collapsed;
  362. if (CodeType == "user_register")
  363. {
  364. ServiceHelper.Get_code(CodeType, RegisterDialogViewModel.RegisterEmail);
  365. }
  366. else if (CodeType == "user_reset_password")
  367. {
  368. ServiceHelper.Get_code(CodeType, LoginDialogViewModel.LoginEmail);
  369. }
  370. }
  371. //计数
  372. public void disTimer_Tick(object sender, EventArgs e)
  373. {
  374. if (time == 0)
  375. {
  376. Codeagin = Visibility.Visible;
  377. Codetime = "";
  378. }
  379. else
  380. {
  381. time--;
  382. Codetime = "("+time.ToString()+")";
  383. }
  384. }
  385. //计时器
  386. private DispatcherTimer disTimer = new DispatcherTimer();
  387. public void Timebegin()
  388. {
  389. time = 60;
  390. //设置定时器
  391. disTimer.Tick += new EventHandler(disTimer_Tick);//每一秒执行的方法
  392. disTimer.Interval = new TimeSpan(10000000); //时间间隔为一秒。
  393. disTimer.Start();//计时开始
  394. }
  395. //判断验证类型
  396. private void BackRegisterLast()
  397. {
  398. if(CodeType== "user_register")
  399. {
  400. RegisterDialogViewModel.RegionMan("RegisterRegion");
  401. }
  402. else if(CodeType == "user_reset_password")
  403. {
  404. LoginDialogViewModel.RegionMan("LoginPasswordRegion");
  405. }
  406. }
  407. }
  408. }