public ProductsBasketFactory(ISalesHistoryService salesHistoryService,
                              IDiscountRulesService discountRulesService,
                              IProductDataService productDataService)
 {
     this.salesHistoryService  = salesHistoryService;
     this.discountRulesService = discountRulesService;
     this.productDataService   = productDataService;
 }
 public ProductsBasket(ISalesHistoryService salesHistoryService,
                       IDiscountRulesService discountRulesService,
                       IProductDataService productDataService)
 {
     this.salesHistoryService  = salesHistoryService ?? throw new ArgumentNullException($"{nameof(salesHistoryService)}");
     this.discountRulesService = discountRulesService;
     this.productDataService   = productDataService ?? throw new ArgumentNullException($"{nameof(productDataService)}");
     products = new List <IProduct>();
 }