Guest User

Untitled

a guest
Oct 9th, 2023
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.71 KB | None | 0 0
  1. public partial class SelectUserViewModel : ViewModelBase
  2. {
  3.     public List<string> _currentUsers;
  4.     public string? _selectedUsername;
  5.     public string? _newUser;
  6.  
  7.     public SelectUserViewModel()
  8.     {
  9.         CurrentUsers = UserQuery.GetUsernames();
  10.  
  11.         IObservable<bool> selectedUserOk = this.WhenAnyValue(
  12.             x => x.SelectedUsername,
  13.             x => !string.IsNullOrEmpty(x) && x != "Select One"));
  14.  
  15.         IObservable<bool> newUserOk = this.WhenAnyValue(
  16.             x => x.NewUser,
  17.             x => !string.IsNullOrEmpty(x));
  18.  
  19.         IObservable<bool> okSelectedEnabled = selectedUserOk;
  20.         IObservable<bool> okNewUserEnabled = newUserOk;
  21.  
  22.         Login = ReactiveCommand.Create(
  23.             ReturnSelectedUser,
  24.             okSelectedEnabled);
  25.  
  26.         CreateUser = ReactiveCommand.Create(
  27.             ReturnNewUser,
  28.             okNewUserEnabled);
  29.     }
  30.  
  31.     public User ReturnSelectedUser()
  32.     {
  33.         return new User
  34.         {
  35.             UserName = SelectedUsername
  36.         };
  37.     }
  38.  
  39.     public User ReturnNewUser()
  40.     {
  41.         return new User
  42.         {
  43.             UserName = NewUser
  44.         };
  45.     }
  46.  
  47.     public List<string> CurrentUsers
  48.     {
  49.         get => _currentUsers;
  50.         set => this.RaiseAndSetIfChanged(ref _currentUsers, value);
  51.     }
  52.  
  53.     public string? SelectedUsername
  54.     {
  55.         get => _selectedUsername;
  56.         set => this.RaiseAndSetIfChanged(ref _selectedUsername, value);
  57.     }
  58.  
  59.     public string? NewUser
  60.     {
  61.         get => _newUser;
  62.         set => this.RaiseAndSetIfChanged(ref _newUser, value);
  63.     }
  64.  
  65.     public ReactiveCommand<Unit, User> Login { get; }
  66.     public ReactiveCommand<Unit, User> CreateUser { get; }
  67. }
Advertisement
Add Comment
Please, Sign In to add comment