using Prism.Commands; using Prism.Events; using Prism.Ioc; using Prism.Mvvm; using Prism.Regions; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; using System.Linq; using System.Windows.Input; using System.Threading.Tasks; using TeamAAS_VP.Data; using TeamAAS_VP.Enums; using TeamAAS_VP.Events; using TeamAAS_VP.Core; using TeamAAS_VP.Models; using TouchSocket.Core; using TeamAAS_VP.Resources.Languages; using TeamAAS_VP.Interfaces; namespace TeamAAS_VP.ViewModels.User { public class SignUpViewModel : BindableBase { IRegionManager _regionManager; IEventAggregator _eventAggregator; IContainerProvider _container; private readonly ISystemDatabaseService _systemDb; #region 属性 public TeamAAS_VP.Models.User MyUser { get; set; } = new TeamAAS_VP.Models.User(); #endregion #region 命令 /// /// 注册命令 /// public DelegateCommand SignUpCommand { get; set; } /// /// 登录命令 /// public DelegateCommand BackupCommand { get; set; } #endregion #region 事件 #endregion public SignUpViewModel(IRegionManager regionManager, IEventAggregator ea, IContainerProvider container, ISystemDatabaseService systemDb) { _regionManager = regionManager; _eventAggregator = ea; _container = container; _systemDb = systemDb; SignUpCommand = new DelegateCommand(async () => await SignUpAsync()); BackupCommand = new DelegateCommand(new Action(Backup)); } #region 方法 private void Backup() { _regionManager.RequestNavigate("UserRegionContext", "LoginView"); _container.Resolve().UpdateUserList(); } private async Task SignUpAsync() { if (string.IsNullOrEmpty(MyUser.UserName)) return; MyUser.CreateTime = DateTime.Now; MyUser.IsRemember = false; try { // if Id is zero then treat as new var added = await _systemDb.AddUserAsync(MyUser); _eventAggregator.GetEvent().Publish(new MessageParameter() { Msg = Lang.完成注册, Duration = 1 }); } catch (Exception) { _eventAggregator.GetEvent().Publish(new MessageParameter() { Msg = Lang.已注册, Duration = 1 }); } } #endregion } }