public override LoadUpdatesResult LoadUpdates(PriceType type, bool forceUpdate)
        {
            var xmlPriceLoader = new XmlPriceLoader(_colorCodeBuilder);
            var oldPriceLoader = new NewestFileSystemPriceLoader(xmlPriceLoader);
            var newPriceLoader = new SingleFilePriceLoader(xmlPriceLoader);

            PriceLoadResult newPriceLoadResult;
            PriceLoadResult oldPriceLoadResult = null;
            switch (type)
            {
                case PriceType.Stock:
                    newPriceLoadResult = newPriceLoader.Load<StockXmlItemList>(PriceUrl);
                    if (!forceUpdate)
                    {
                        oldPriceLoadResult = oldPriceLoader.Load<StockXmlItemList>(ArchiveDirectory);
                    }
                    break;

                case PriceType.Full:
                    newPriceLoadResult = newPriceLoader.Load<FullXmlItemList>(PriceUrl);
                    if (!forceUpdate)
                    {
                        oldPriceLoadResult = oldPriceLoader.Load<FullXmlItemList>(ArchiveDirectory);
                    }
                    break;

                case PriceType.Discount:
                    throw new NotImplementedException();

                default:
                    throw new ArgumentOutOfRangeException();
            }

            return new LoadUpdatesResult(newPriceLoadResult, oldPriceLoadResult, newPriceLoadResult.Success);
        }
        public override LoadUpdatesResult LoadUpdates(PriceType type, bool forceUpdate)
        {
            var priceFormat = GetPriceFormat(_priceFormatFile);

            var csvPriceLoader = new CsvPriceLoader(_priceEncoding, priceFormat);
            var newPriceLoader = new SingleFilePriceLoader(csvPriceLoader);

            var newPriceLoadResult = newPriceLoader.Load <string>(PriceUrl);

            PriceLoadResult oldPriceLoadResult = null;

            if (!forceUpdate)
            {
                var oldPriceLoader = new NewestFileSystemPriceLoader(csvPriceLoader);
                oldPriceLoadResult = oldPriceLoader.Load <string>(ArchiveDirectory);
            }

            return(new LoadUpdatesResult(newPriceLoadResult, oldPriceLoadResult, newPriceLoadResult.Success));
        }
        public override LoadUpdatesResult LoadUpdates(PriceType type, bool forceUpdate)
        {
            var priceFormat = GetPriceFormat(_priceFormatFile);
            
            var csvPriceLoader = new CsvPriceLoader(_priceEncoding, priceFormat);
            var newPriceLoader = new SingleFilePriceLoader(csvPriceLoader);

            var newPriceLoadResult = newPriceLoader.Load<string>(PriceUrl);
            
            PriceLoadResult oldPriceLoadResult = null;

            if (!forceUpdate)
            {
                var oldPriceLoader = new NewestFileSystemPriceLoader(csvPriceLoader);
                oldPriceLoadResult = oldPriceLoader.Load<string>(ArchiveDirectory);
            }

            return new LoadUpdatesResult(newPriceLoadResult, oldPriceLoadResult, newPriceLoadResult.Success);
        }
Example #4
0
        public override LoadUpdatesResult LoadUpdates(PriceType type, bool forceUpdate)
        {
            var xmlPriceLoader = new XmlPriceLoader(_colorCodeBuilder);
            var oldPriceLoader = new NewestFileSystemPriceLoader(xmlPriceLoader);
            var newPriceLoader = new SingleFilePriceLoader(xmlPriceLoader);

            PriceLoadResult newPriceLoadResult;
            PriceLoadResult oldPriceLoadResult = null;

            switch (type)
            {
            case PriceType.Stock:
                Log.Debug("Loading new price from {0}", PriceUrl);
                newPriceLoadResult = newPriceLoader.Load <StockXmlItemList>(PriceUrl);
                if (!forceUpdate)
                {
                    Log.Debug("Loading old price from {0}", ArchiveDirectory);
                    oldPriceLoadResult = oldPriceLoader.Load <StockXmlItemList>(ArchiveDirectory);
                }
                break;

            case PriceType.Full:
                Log.Debug("Loading new price from {0}", PriceUrl);
                newPriceLoadResult = newPriceLoader.Load <FullXmlItemList>(PriceUrl);
                if (!forceUpdate)
                {
                    oldPriceLoadResult = oldPriceLoader.Load <FullXmlItemList>(ArchiveDirectory);
                    Log.Debug("Loading old price from {0}", ArchiveDirectory);
                }
                break;

            case PriceType.Discount:
                throw new NotImplementedException();

            default:
                throw new ArgumentOutOfRangeException();
            }

            return(new LoadUpdatesResult(newPriceLoadResult, oldPriceLoadResult, newPriceLoadResult.Success));
        }