Ejemplo n.º 1
0
        public void Execute()
        {
            var timeOfThisQuery        = DateTime.Now;
            var articlesForPriceUpdate = _priceUpdateQuery.GetArticlesForPriceUpdate(_timeOfLastQueryForPriceUpdates);

            foreach (var article in articlesForPriceUpdate)
            {
                switch (article.Market)
                {
                case "DK":
                    var dkmarket = _settings.Markets.First(m => m.MarketKey == "4sound.dk");
                    article.NewPrice = _customerAgreementQuery.GetPrice(dkmarket.VendorId, article.ArticleNo);
                    _pimCommandService.PublishPriceUpdate(dkmarket.MarketKey, MapToArticleForPriceAndStockUpdate(article));
                    break;

                case "NO":
                    var nomarket = _settings.Markets.First(m => m.MarketKey == "4sound.no");
                    article.NewPrice = _customerAgreementQuery.GetPrice(nomarket.VendorId, article.ArticleNo);
                    _pimCommandService.PublishPriceUpdate(nomarket.MarketKey, MapToArticleForPriceAndStockUpdate(article));
                    break;

                case "SE":
                    var semarket = _settings.Markets.First(m => m.MarketKey == "4sound.se");
                    article.NewPrice = _customerAgreementQuery.GetPrice(semarket.VendorId, article.ArticleNo);
                    _pimCommandService.PublishPriceUpdate(semarket.MarketKey, MapToArticleForPriceAndStockUpdate(article));
                    break;
                }
            }

            _lastCallsRepository.UpdateTimeOfLastQueryForPriceUpdates(timeOfThisQuery);
            _timeOfLastQueryForPriceUpdates = timeOfThisQuery;
        }