123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- using Amazon.Runtime;
- using HandyControl.Interactivity.Commands;
- using Shaker.Model;
- using Shaker.ViewModel;
- using ShakerManger.Data;
- using System;
- using System.Collections.Generic;
- using System.Collections.ObjectModel;
- using System.ComponentModel.DataAnnotations;
- using System.Diagnostics.CodeAnalysis;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Input;
- namespace ShakerManger.ViewModel
- {
- internal class UserPageViewModel:DisplayViewModel<ModelBase>, ISystemPageViewModel
- {
- public UserViewModel SelectedUser
- {
- get => selectedUser;
- set
- {
- UpdateProperty(ref selectedUser, value);
- OnPropertyChanged(nameof(IsLocalUser));
- }
- }
- public override void Init()
- {
- base.Init();
- var models = Sql.Default.Find<UserModel>(x => true).ToList();
- foreach (var model in models)
- {
- Users.Add(new UserViewModel(model));
- }
- if(Users.Count>0)
- {
- SelectedUser = Users[0];
- }
- else
- {
- SelectedUser = new UserViewModel(new UserModel());
- }
- }
- public AddUserViewModel AddUserViewModel { get; } = new AddUserViewModel();
- public ResetPassWordViewModel ResetPassWord { get; } = new ResetPassWordViewModel();
- public bool IsLocalUser =>!string.IsNullOrEmpty(SelectedUser?.Model?.Id);
- public override Type View { get; } = typeof(View.UserPageView);
- private bool isEnabled = true;
- [AllowNull]
- private UserViewModel selectedUser;
- public SystemPageType SystemPageType => SystemPageType.UserPage;
- public string IconPath { get; } = (string)App.Current.FindResource("UserIcon");
- public bool IsEnabled { get => isEnabled; set => UpdateProperty(ref isEnabled, value); }
- public ObservableCollection<UserViewModel> Users { get; } = new ObservableCollection<UserViewModel>();
- public ICommand AddUserCommand =>new DelegateCommand(AddUser);
- private void AddUser()
- {
- AddUserViewModel.Init();
- AddUserViewModel.AddUserAction = async (user) =>
- {
- Users.Add(new UserViewModel(user));
- if (Users.Count == 1)
- {
- SelectedUser = Users.First();
- }
- await Task.Delay(100);
- PromptViewModel.Default.Init();
- PromptViewModel.Default.Message = "添加成功";
- PromptViewModel.Default.IconType = IconType.Info;
- PromptViewModel.Default.NoVisibility = System.Windows.Visibility.Collapsed;
- PromptViewModel.Default.IsOpen = true;
- };
- AddUserViewModel.IsOpen = true;
- }
- public ICommand DeleteUserCommand =>new DelegateCommand(DeleteUser);
- private void DeleteUser()
- {
- if (!IsLocalUser) return;
- PromptViewModel.Default.Init();
- PromptViewModel.Default.Message = "确认删除用户吗?";
- PromptViewModel.Default.YesAction = async () =>
- {
- Sql.Default.Delete<UserModel, string>(x => x.Id, SelectedUser.Model.Id);
- Users.Remove(SelectedUser);
- if (Users.Count > 0)
- {
- SelectedUser = Users.First();
- }
- else
- {
- SelectedUser = new UserViewModel(new UserModel());
- }
- PromptViewModel.Default.Init();
- await Task.Delay(100);
- PromptViewModel.Default.Message = "删除成功";
- PromptViewModel.Default.IconType = IconType.Info;
- PromptViewModel.Default.NoVisibility = System.Windows.Visibility.Collapsed;
- PromptViewModel.Default.IsOpen = true;
- };
- PromptViewModel.Default.IsOpen = true;
- }
- public ICommand SaveUserCommand => new DelegateCommand(SaveUser);
- private void SaveUser()
- {
- if (!IsLocalUser || !SelectedUser.IsChanged) return;
- Sql.Default.Replace(x => x.Id, SelectedUser.Model.Id, SelectedUser.Model);
- SelectedUser.IsChanged = false;
- PromptViewModel.Default.Init();
- PromptViewModel.Default.Message = "保存成功";
- PromptViewModel.Default.IconType = IconType.Info;
- PromptViewModel.Default.NoVisibility = System.Windows.Visibility.Collapsed;
- PromptViewModel.Default.IsOpen = true;
- }
- public ICommand ResetPasswordCommand =>new DelegateCommand(ResetPassword);
- public void ResetPassword()
- {
- if (!IsLocalUser) return;
- ResetPassWord.Init();
- ResetPassWord.OkAction = async () =>
- {
- Sql.Default.UpDate<UserModel,string,string>(x => x.Id, SelectedUser.Model.Id, x => x.PassWord, GlobalVariable.MD5Encrypt32(ResetPassWord.FirstPassword));
- await Task.Delay(100);
- PromptViewModel.Default.Init();
- PromptViewModel.Default.Message = "修改成功";
- PromptViewModel.Default.IconType = IconType.Info;
- PromptViewModel.Default.NoVisibility = System.Windows.Visibility.Collapsed;
- PromptViewModel.Default.IsOpen = true;
- };
- ResetPassWord.IsOpen = true;
- }
- }
- }
|