using System.Collections.Generic; using AutoMapper; using Microsoft.Extensions.DependencyInjection; using WotBlitzStatisticsPro.Common.Model; using WotBlitzStatisticsPro.DataAccess; using WotBlitzStatisticsPro.Logic.Dictionaries; using WotBlitzStatisticsPro.WgApiClient; namespace WotBlitzStatisticsPro.Logic { public static class WotBlitzStatisticsLogicInstaller { public static void ConfigureServices(IServiceCollection services) { ConfigureDictionariesFactory(services); WotBlitzStatisticsDataAccessInstaller.ConfigureServices(services); services.AddAutoMapper(typeof(WotBlitzStatisticsLogicInstaller)); services.AddHttpClient(); services.AddHttpClient(); services.AddTransient(); services.AddTransient(); } private static void ConfigureDictionariesFactory(IServiceCollection services) { services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(serviceProvider => dictionaryType => { switch (dictionaryType) { case DictionaryType.StaticDictionaries: return serviceProvider.GetService(); case DictionaryType.Achievements: return serviceProvider.GetService(); case DictionaryType.Vehicles: return serviceProvider.GetService(); default: return null; } }); } } }