forked from Roflin/gamenight
44 lines
1.4 KiB
C#
44 lines
1.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using DynamicData.Binding;
|
|
using FrontendAvalonia.Models;
|
|
using FrontendAvalonia.Services.GamenightApi;
|
|
using ReactiveUI;
|
|
|
|
namespace FrontendAvalonia.ViewModels;
|
|
|
|
public class GamenightsViewModel : PageViewModelBase
|
|
{
|
|
private IGamenight Gamenight { get; }
|
|
private GamenightModel Model { get; }
|
|
private LoginViewModel LoginViewModel { get; }
|
|
|
|
public AddGamenightViewModel AddGamenightViewModel { get; }
|
|
|
|
private ObservableCollectionExtended<ReactiveObject> _gamenightItems = new ObservableCollectionExtended<ReactiveObject>();
|
|
public ObservableCollectionExtended<ReactiveObject> GamenightItems {
|
|
get => _gamenightItems;
|
|
set => this.RaiseAndSetIfChanged(ref _gamenightItems, value);
|
|
}
|
|
|
|
public GamenightsViewModel(IScreen screen, IGamenight gamenight, GamenightModel model, LoginViewModel loginViewModel)
|
|
: base(screen)
|
|
{
|
|
Gamenight = gamenight;
|
|
Model = model;
|
|
LoginViewModel = loginViewModel;
|
|
AddGamenightViewModel = new AddGamenightViewModel(Gamenight, model);
|
|
this._gamenightItems.Add(AddGamenightViewModel);
|
|
this.WhenActivated(OnActivated);
|
|
}
|
|
|
|
private IEnumerable<IDisposable> OnActivated()
|
|
{
|
|
if (Model.UserToken == null)
|
|
{
|
|
HostScreen.Router.Navigate.Execute(LoginViewModel);
|
|
}
|
|
return Enumerable.Empty<IDisposable>();
|
|
}
|
|
} |