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; }