public partial class SelectUserViewModel : ViewModelBase
{
public List<string> _usernames;
public List<User> _currentUsers;
public string? _selectedUsername;
public string? _newUser;
public SelectUserViewModel()
{
CurrentUsers = UserQuery.GetUsernames();
IObservable<bool> selectedUsernameOk = this.WhenAnyValue(
x => x.SelectedUsername,
x => !string.IsNullOrEmpty(x) || !string.IsNullOrEmpty(NewUser));
IObservable<bool> okEnabled = selectedUsernameOk;
Ok = ReactiveCommand.Create(
ReturnSelectedUser,
okEnabled);
Cancel = ReactiveCommand.Create(() => {
Environment.Exit(0);
});
}
public User ReturnSelectedUser()
{
if (!string.IsNullOrEmpty(NewUser))
{
return new User
{
UserName = NewUser
};
}
else
{
return new User
{
UserName = SelectedUsername
};
}
}
public List<string> Usernames
{
get => _usernames;
set => this.RaiseAndSetIfChanged(ref _usernames, value);
}
public List<User> CurrentUsers
{
get => _currentUsers;
set => this.RaiseAndSetIfChanged(ref _currentUsers, value);
}
public string? SelectedUsername
{
get => _selectedUsername;
set => this.RaiseAndSetIfChanged(ref _selectedUsername, value);
}
public string? NewUser
{
get => _newUser;
set => this.RaiseAndSetIfChanged(ref _newUser, value);
}
public ReactiveCommand<Unit, User> Ok { get; }
public ReactiveCommand<Unit, Unit> Cancel { get; }
}
public partial class SelectUserViewModel : ViewModelBase
{
public List<string> _usernames;
public List<User> _currentUsers;
public string? _selectedUsername;
public string? _newUser;
public SelectUserViewModel()
{
CurrentUsers = UserQuery.GetUsernames();
IObservable<bool> selectedUsernameOk = this.WhenAnyValue(
x => x.SelectedUsername,
x => !string.IsNullOrEmpty(x) || !string.IsNullOrEmpty(NewUser));
IObservable<bool> okEnabled = selectedUsernameOk;
Ok = ReactiveCommand.Create(
ReturnSelectedUser,
okEnabled);
Cancel = ReactiveCommand.Create(() => {
Environment.Exit(0);
});
}
public User ReturnSelectedUser()
{
if (!string.IsNullOrEmpty(NewUser))
{
return new User
{
UserName = NewUser
};
}
else
{
return new User
{
UserName = SelectedUsername
};
}
}
public List<string> Usernames
{
get => _usernames;
set => this.RaiseAndSetIfChanged(ref _usernames, value);
}
public List<User> CurrentUsers
{
get => _currentUsers;
set => this.RaiseAndSetIfChanged(ref _currentUsers, value);
}
public string? SelectedUsername
{
get => _selectedUsername;
set => this.RaiseAndSetIfChanged(ref _selectedUsername, value);
}
public string? NewUser
{
get => _newUser;
set => this.RaiseAndSetIfChanged(ref _newUser, value);
}
public ReactiveCommand<Unit, User> Ok { get; }
public ReactiveCommand<Unit, Unit> Cancel { get; }
}