public static IServiceCollection AddCommerceConfiguration(this IServiceCollection services, Action <TinyShopOptions> options) { var settings = new TinyShopOptions(); options.Invoke(settings); return(SetupCommerce(services, settings)); }
private static IServiceCollection SetupCommerce(IServiceCollection services, TinyShopOptions settings) { services .AddSingleton(typeof(IShopFactory), settings.ShopFactory) .AddTransient(typeof(IOrder), settings.OrderType) .AddTransient(typeof(IArticle), settings.ShopArticleType) .AddTransient(typeof(IShopArticleWithProperties), settings.ShopArticleWithPropertiesType) .AddTransient(typeof(IOrderArticle), settings.OrderArticleType) .AddSingleton(typeof(IOrderService), settings.OrderService) .AddSingleton(typeof(IArticleService), settings.ArticleService) .AddSingleton(typeof(IProductService), settings.ProductService); return(services); }