Presence_Desktop/Presence.Desktop/ViewModels/MainWindowViewModel.cs
2024-12-23 14:26:41 +03:00

36 lines
1.9 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using data.RemoteData;
using domain.UseCase;
using Microsoft.Extensions.DependencyInjection;
using ReactiveUI;
namespace Presence.Desktop.ViewModels
{
public class MainWindowViewModel : ViewModelBase, IScreen
{
// Состояние маршрутизации для навигации внутри приложения
public RoutingState Router { get; } = new RoutingState();
// Конструктор для MainWindowViewModel, получает провайдер сервисов для внедрения зависимостей
public MainWindowViewModel(IServiceProvider serviceProvider)
{
// Получение необходимых зависимостей из провайдера сервисов
var groupUseCase = serviceProvider.GetRequiredService<GroupUseCase>();
var presenceUseCase = serviceProvider.GetRequiredService<UseCaseGeneratePresence>();
var remoteDatabaseContext = serviceProvider.GetRequiredService<RemoteDatabaseContext>();
// Навигация к GroupViewModel, передача необходимых зависимостей
NavigateToGroupViewModel(groupUseCase, presenceUseCase, remoteDatabaseContext);
}
// Приватный метод для обработки навигации к GroupViewModel
private void NavigateToGroupViewModel(GroupUseCase groupUseCase, UseCaseGeneratePresence presenceUseCase, RemoteDatabaseContext remoteDatabaseContext)
{
// Создание нового экземпляра GroupViewModel, передача зависимостей
var groupViewModel = new GroupViewModel(this, groupUseCase, presenceUseCase, remoteDatabaseContext);
// Навигация к GroupViewModel с использованием ReactiveUI Router
Router.Navigate.Execute(groupViewModel);
}
}
}