📄 src/App/ViewModels/MainViewModel.cs
using System;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
using MMirror.App.ViewModels.Panels;

namespace MMirror.App.ViewModels;

public partial class MainViewModel : ViewModelBase
{
    public ViewModelBase Olskrokstorget { get; }
    public ViewModelBase Svingeln { get; }
    public ViewModelBase UpperRight { get; }

    public MainViewModel(
        VasttrafikPanelViewModel olskrokstorget,
        VasttrafikPanelViewModel svingeln,
        DateTimePanelViewModel dateTimePanelViewModel
    )
    {
        olskrokstorget.StopName = "Olskrokstorget";
        olskrokstorget.StopId = "9021014005160000";
        Olskrokstorget = olskrokstorget;

        svingeln.StopName = "Svingeln";
        svingeln.StopId = "9021014006480000";
        Svingeln = svingeln;

        UpperRight = dateTimePanelViewModel;
    }
}

internal static class MainViewModelServiceCollectionExtensions
{
    extension(IServiceCollection services)
    {
        public IServiceCollection AddMainViewModel()
        {
            services.TryAddSingleton(TimeProvider.System);
            services.AddTransient<MainViewModel>();
            return services;
        }
    }
}