Advertisement
mekasu0124

Untitled

Mar 16th, 2024
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.74 KB | None | 0 0
  1. using MakeMyProject.Models;
  2. using ReactiveUI;
  3. using System;
  4. using System.Reactive.Linq;
  5.  
  6. namespace MakeMyProject.ViewModels;
  7.  
  8. public class MainWindowViewModel : ViewModelBase
  9. {
  10.     ViewModelBase _content = new();
  11.  
  12.     private UserModel _loggedInUser = new();
  13.  
  14.     public MainWindowViewModel()
  15.     {
  16.         LoginScreen();
  17.     }
  18.  
  19.     public void LoginScreen()
  20.     {
  21.         var vm = new LoginViewModel();
  22.  
  23.         Observable.Merge(
  24.             vm.Ok,
  25.             vm.Cancel
  26.             .Select(_ => (UserModel?)null))
  27.             .Take(1)
  28.             .Subscribe(model =>
  29.             {
  30.                 if (model != null)
  31.                 {
  32.                     LoggedInUser = model;
  33.                 }
  34.             });
  35.  
  36.         Content = vm;
  37.     }
  38.  
  39.     public void ShowForgotPassword()
  40.     {
  41.         var vm = new ForgotPasswordViewModel();
  42.  
  43.         Content = vm;
  44.     }
  45.  
  46.     public void CreateNewUser()
  47.     {
  48.         var vm = new CreateNewUserViewModel();
  49.  
  50.         Observable.Merge(
  51.             vm.Ok,
  52.             vm.Cancel
  53.             .Select(_ => (UserModel?)null))
  54.             .Take(1)
  55.             .Subscribe(model =>
  56.             {
  57.                 if (model != null)
  58.                 {
  59.                     LoggedInUser = model;
  60.                     // Show Home Screen
  61.                 }
  62.                 else
  63.                 {
  64.                     LoginScreen();
  65.                 }
  66.             });
  67.  
  68.         Content = vm;
  69.     }
  70.  
  71.     public ViewModelBase Content
  72.     {
  73.         get => _content;
  74.         set => this.RaiseAndSetIfChanged(ref _content, value);
  75.     }
  76.  
  77.     public UserModel LoggedInUser
  78.     {
  79.         get => _loggedInUser;
  80.         set => this.RaiseAndSetIfChanged(ref _loggedInUser, value);
  81.     }
  82. }
  83.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement