SignUpViewModel.cs 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. using Prism.Commands;
  2. using Prism.Events;
  3. using Prism.Ioc;
  4. using Prism.Mvvm;
  5. using Prism.Regions;
  6. using System;
  7. using System.Collections.Generic;
  8. using System.Collections.ObjectModel;
  9. using System.ComponentModel;
  10. using System.Linq;
  11. using System.Windows.Input;
  12. using System.Threading.Tasks;
  13. using TeamAAS_VP.Data;
  14. using TeamAAS_VP.Enums;
  15. using TeamAAS_VP.Events;
  16. using TeamAAS_VP.Core;
  17. using TeamAAS_VP.Models;
  18. using TouchSocket.Core;
  19. using TeamAAS_VP.Resources.Languages;
  20. using TeamAAS_VP.Interfaces;
  21. namespace TeamAAS_VP.ViewModels.User
  22. {
  23. public class SignUpViewModel : BindableBase
  24. {
  25. IRegionManager _regionManager;
  26. IEventAggregator _eventAggregator;
  27. IContainerProvider _container;
  28. private readonly ISystemDatabaseService _systemDb;
  29. #region 属性
  30. public TeamAAS_VP.Models.User MyUser { get; set; } = new TeamAAS_VP.Models.User();
  31. #endregion
  32. #region 命令
  33. /// <summary>
  34. /// 注册命令
  35. /// </summary>
  36. public DelegateCommand SignUpCommand { get; set; }
  37. /// <summary>
  38. /// 登录命令
  39. /// </summary>
  40. public DelegateCommand BackupCommand { get; set; }
  41. #endregion
  42. #region 事件
  43. #endregion
  44. public SignUpViewModel(IRegionManager regionManager, IEventAggregator ea, IContainerProvider container, ISystemDatabaseService systemDb)
  45. {
  46. _regionManager = regionManager;
  47. _eventAggregator = ea;
  48. _container = container;
  49. _systemDb = systemDb;
  50. SignUpCommand = new DelegateCommand(async () => await SignUpAsync());
  51. BackupCommand = new DelegateCommand(new Action(Backup));
  52. }
  53. #region 方法
  54. private void Backup()
  55. {
  56. _regionManager.RequestNavigate("UserRegionContext", "LoginView");
  57. _container.Resolve<LoginViewModel>().UpdateUserList();
  58. }
  59. private async Task SignUpAsync()
  60. {
  61. if (string.IsNullOrEmpty(MyUser.UserName))
  62. return;
  63. MyUser.CreateTime = DateTime.Now;
  64. MyUser.IsRemember = false;
  65. try
  66. {
  67. // if Id is zero then treat as new
  68. var added = await _systemDb.AddUserAsync(MyUser);
  69. _eventAggregator.GetEvent<SnackbarMessageNotification>().Publish(new MessageParameter() { Msg = Lang.完成注册, Duration = 1 });
  70. }
  71. catch (Exception)
  72. {
  73. _eventAggregator.GetEvent<SnackbarMessageNotification>().Publish(new MessageParameter() { Msg = Lang.已注册, Duration = 1 });
  74. }
  75. }
  76. #endregion
  77. }
  78. }