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(); public DashboardViewModel CreateDashboardViewModel() => services.GetRequiredService(); public ExportSetupViewModel CreateExportSetupViewModel( Guild guild, IReadOnlyList channels ) { var viewModel = services.GetRequiredService(); viewModel.Guild = guild; viewModel.Channels = channels; return viewModel; } public MessageBoxViewModel CreateMessageBoxViewModel( string title, string message, string? okButtonText, string? cancelButtonText ) { var viewModel = services.GetRequiredService(); 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(); }