diff --git a/src/BattleMuffin/Configuration/ClientConfiguration.cs b/src/BattleMuffin/Configuration/ClientConfiguration.cs index 19e9f46..5c587da 100644 --- a/src/BattleMuffin/Configuration/ClientConfiguration.cs +++ b/src/BattleMuffin/Configuration/ClientConfiguration.cs @@ -9,33 +9,20 @@ namespace BattleMuffin.Configuration [UsedImplicitly] public class ClientConfiguration : IClientConfiguration { - public ClientConfiguration(Region region, string clientId, string clientSecret) + public ClientConfiguration(Region region, string clientId, string clientSecret, CultureInfo? locale = null) { var regionConfig = RegionConfigurationMap.Mapping.ContainsKey(region) ? RegionConfigurationMap.Mapping[region] : throw new RegionException("Configuration not found for specified region"); - Host = regionConfig.Host; - OauthHost = regionConfig.OauthHost; - Locale = regionConfig.DefaultLocale; - ClientId = clientId; - ClientSecret = clientSecret; - } - - public ClientConfiguration(Region region, string clientId, string clientSecret, CultureInfo locale) - { - var regionConfig = RegionConfigurationMap.Mapping.ContainsKey(region) - ? RegionConfigurationMap.Mapping[region] - : throw new RegionException("Configuration not found for specified region"); - - if (regionConfig.AvailableLocales.All(x => !x.Equals(locale))) + if (locale != null && !regionConfig.AvailableLocales.Any(x => x.Equals(locale))) { throw new LocaleException("Locale not valid for specified region"); } Host = regionConfig.Host; OauthHost = regionConfig.OauthHost; - Locale = locale; + Locale = locale ?? regionConfig.DefaultLocale; ClientId = clientId; ClientSecret = clientSecret; } diff --git a/src/BattleMuffin/Extensions/DependencyInjectionExtensions.cs b/src/BattleMuffin/Extensions/DependencyInjectionExtensions.cs index 03b1481..bf49454 100644 --- a/src/BattleMuffin/Extensions/DependencyInjectionExtensions.cs +++ b/src/BattleMuffin/Extensions/DependencyInjectionExtensions.cs @@ -26,16 +26,9 @@ private static void AddBattleMuffinHttpClient(this IServiceCollection serviceCol serviceCollection.AddSingleton(); } - - public static void AddWarcraftClient(this IServiceCollection serviceCollection, Region region, string clientId, string clientSecret) - { - serviceCollection.AddSingleton(x => new ClientConfiguration(region, clientId, clientSecret)); - serviceCollection.AddBattleMuffinHttpClient(); - serviceCollection.AddSingleton(); - } - + [UsedImplicitly] - public static void AddWarcraftClient(this IServiceCollection serviceCollection, Region region, string clientId, string clientSecret, CultureInfo locale) + public static void AddWarcraftClient(this IServiceCollection serviceCollection, Region region, string clientId, string clientSecret, CultureInfo? locale = null) { serviceCollection.AddSingleton(x => new ClientConfiguration(region, clientId, clientSecret, locale)); serviceCollection.AddBattleMuffinHttpClient();