Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using MakeMyProject.Models;
- using ReactiveUI;
- using System;
- using System.Reactive.Linq;
- namespace MakeMyProject.ViewModels;
- public class MainWindowViewModel : ViewModelBase
- {
- ViewModelBase _content = new();
- private UserModel _loggedInUser = new();
- public MainWindowViewModel()
- {
- LoginScreen();
- }
- public void LoginScreen()
- {
- var vm = new LoginViewModel();
- Observable.Merge(
- vm.Ok,
- vm.Cancel
- .Select(_ => (UserModel?)null))
- .Take(1)
- .Subscribe(model =>
- {
- if (model != null)
- {
- LoggedInUser = model;
- }
- });
- Content = vm;
- }
- public void ShowForgotPassword()
- {
- var vm = new ForgotPasswordViewModel();
- Content = vm;
- }
- public void CreateNewUser()
- {
- var vm = new CreateNewUserViewModel();
- Observable.Merge(
- vm.Ok,
- vm.Cancel
- .Select(_ => (UserModel?)null))
- .Take(1)
- .Subscribe(model =>
- {
- if (model != null)
- {
- LoggedInUser = model;
- // Show Home Screen
- }
- else
- {
- LoginScreen();
- }
- });
- Content = vm;
- }
- public ViewModelBase Content
- {
- get => _content;
- set => this.RaiseAndSetIfChanged(ref _content, value);
- }
- public UserModel LoggedInUser
- {
- get => _loggedInUser;
- set => this.RaiseAndSetIfChanged(ref _loggedInUser, value);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement