DiscordChatExporter/DiscordChatExporter.Gui/Framework/ViewModelManager.cs
2024-04-27 04:17:46 +03:00

53 lines
1.6 KiB
C#

using System;
using System.Collections.Generic;
using DiscordChatExporter.Core.Discord.Data;
using DiscordChatExporter.Gui.ViewModels;
using DiscordChatExporter.Gui.ViewModels.Components;
using DiscordChatExporter.Gui.ViewModels.Dialogs;
using Microsoft.Extensions.DependencyInjection;
namespace DiscordChatExporter.Gui.Framework;
public class ViewModelManager(IServiceProvider services)
{
public MainViewModel CreateMainViewModel() => services.GetRequiredService<MainViewModel>();
public DashboardViewModel CreateDashboardViewModel() =>
services.GetRequiredService<DashboardViewModel>();
public ExportSetupViewModel CreateExportSetupViewModel(
Guild guild,
IReadOnlyList<Channel> channels
)
{
var viewModel = services.GetRequiredService<ExportSetupViewModel>();
viewModel.Guild = guild;
viewModel.Channels = channels;
return viewModel;
}
public MessageBoxViewModel CreateMessageBoxViewModel(
string title,
string message,
string? okButtonText,
string? cancelButtonText
)
{
var viewModel = services.GetRequiredService<MessageBoxViewModel>();
viewModel.Title = title;
viewModel.Message = message;
viewModel.DefaultButtonText = okButtonText;
viewModel.CancelButtonText = cancelButtonText;
return viewModel;
}
public MessageBoxViewModel CreateMessageBoxViewModel(string title, string message) =>
CreateMessageBoxViewModel(title, message, "CLOSE", null);
public SettingsViewModel CreateSettingsViewModel() =>
services.GetRequiredService<SettingsViewModel>();
}