using System; using IOL.VippsEcommerce.Models; using Microsoft.Extensions.DependencyInjection; namespace IOL.VippsEcommerce { public static class ServiceCollectionExtensions { /// /// Configures and adds the VippsEcommerceService to your DI. /// /// Servicecollection to add VippsEcommerceService to. /// /// public static IServiceCollection AddVippsEcommerceService( this IServiceCollection services, Action configuration ) { if (services == null) { throw new ArgumentNullException(nameof(services)); } if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } services.Configure(configuration); services.AddHttpClient(); services.AddScoped(); return services; } /// /// Adds the VippsEcommerceService to your DI, and expects configuration values from environment variables. /// /// Servicecollection to add VippsEcommerceService to. /// public static IServiceCollection AddVippsEcommerceService(this IServiceCollection services) { if (services == null) { throw new ArgumentNullException(nameof(services)); } services.Configure(new Action(o => o.ConfigurationMode = VippsConfigurationMode.ONLY_ENVIRONMENT)); services.AddHttpClient(); services.AddScoped(); return services; } } }