protected PriceManagerBase(IProcessor processor, SupplierSettings supplierSettings, string archiveDirectory, IRetailPriceBuilder retailPriceBuilder) { PriceUrl = supplierSettings.Url; DiscountValue = supplierSettings.Discount; _processor = processor; _retailPriceBuilder = retailPriceBuilder; ArchiveDirectory = archiveDirectory; }
public IPriceManager Build(SupplierSettings supplierSettings) { if (supplierSettings.Supplier != SupplierType.Happiness) { throw new Exception($"There is no price manager for supplier type {supplierSettings.Supplier}"); } var archiveDirectory = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), supplierSettings.ArchiveDirectory); IRetailPriceBuilder retailPriceBuilder = new RetailPriceBuilder(supplierSettings); switch (Path.GetExtension(supplierSettings.Url)) { case ".xml": return(new HappinesXmlPriceManager(_processor, supplierSettings, archiveDirectory, retailPriceBuilder, _colorBuilder)); case ".csv": return(new HappinesCsvPriceManager(_processor, supplierSettings, archiveDirectory, retailPriceBuilder)); default: throw new Exception($"There is no price manager for file with extension {Path.GetExtension(supplierSettings.Url)}"); } }
public RetailPriceBuilder(SupplierSettings settings) { _settings = settings; }
public HappinesCsvPriceManager(IProcessor processor, SupplierSettings supplierSettings, string archiveDirectory, IRetailPriceBuilder retailPriceBuilder) : base(processor, supplierSettings, archiveDirectory, retailPriceBuilder) { _priceFormatFile = supplierSettings.FormatFile; _priceEncoding = supplierSettings.Encoding; }
public HappinesXmlPriceManager(IProcessor processor, SupplierSettings supplierSettings, string archiveDirectory, IRetailPriceBuilder retailPriceBuilder, IColorBuilder colorCodeBuilder) : base(processor, supplierSettings, archiveDirectory, retailPriceBuilder) { _colorCodeBuilder = colorCodeBuilder; }