using Harmonia.Core.Caching; using Harmonia.Core.Engine; using Harmonia.Core.Imaging; using Harmonia.Core.Player; using Harmonia.Core.Playlists; using Harmonia.Core.Scanner; using Harmonia.Core.Tags; using Microsoft.Extensions.DependencyInjection; namespace Harmonia.Core.Extensions; public static class ServiceCollectionExtensions { public static IServiceCollection AddHarmonia(this IServiceCollection services) { services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); return services; } } public static class ServiceProviderExtensions { public static async Task InitializeHarmoniaAsync(this IServiceProvider serviceProvider) { IPlaylistRepository playlistRepository = serviceProvider.GetRequiredService(); await playlistRepository.InitializeAsync(); IPlaylistManager playlistManager = serviceProvider.GetRequiredService(); await playlistManager.InitializeAsync(); } }