using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using PDF_Office.CustomControl; using PDF_Office.Helper; using PDF_Office.Properties; using PDF_Office.Views.Dialog.ServiceDialog; using Prism.Commands; using Prism.Mvvm; using Prism.Regions; using Prism.Services.Dialogs; namespace PDF_Office.ViewModels.Dialog.ServiceDialog { public class UserDialogViewModel : BindableBase, IDialogAware { private static Guid myuuid = Guid.NewGuid(); private string uuid = myuuid.ToString(); public IRegionManager Region; public string Title => "用户窗口"; public event Action RequestClose; private string _UserEmail=ServiceHelper.GetUser() ; public string UserEmail { get { return _UserEmail; } set { _UserEmail = value; } } private string _UserRegionName; public string UserRegionName { get { return _UserRegionName; } set { _UserRegionName = value; } } public void Close() { RequestClose?.Invoke(new Prism.Services.Dialogs.DialogResult(ButtonResult.Cancel)); } public bool CanCloseDialog() { return true; } public void OnDialogClosed() { } public void OnDialogOpened(IDialogParameters parameters) { } public DelegateCommand UserOutCommand { get; set; } public DelegateCommand LogOutCommand { get; set; } UserDialogViewModel(IRegionManager regionManager, IDialogService dialogService) { this.Region = regionManager; UserRegionName = Guid.NewGuid().ToString(); UserOutCommand = new DelegateCommand(UserOut); LogOutCommand = new DelegateCommand(LogOut); if (ServiceHelper.ALLEmail!="") { UserEmail = ServiceHelper.ALLEmail; } } public void UserOut() { AlertsMessage alertsMessage = new AlertsMessage(); alertsMessage.ShowDialog("Are you sure you want to cancel?", "Cancellation cannot be withdrawn, it will be completed within 3 working days, until then your account will be frozen and cannot be logged in, are you sure you want to cancel your account?", "Cancel", "OK"); if (alertsMessage.result == ContentResult.Ok) { ServiceHelper.Get_code("user_log_off", UserEmail); 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); } } }