Advertisement
mekasu0124

Untitled

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