Exemple #1
0
        public object Execute(DateTime?timeOfLastRequestOverride = null)
        {
            var timeOfLastRequest = timeOfLastRequestOverride ?? _lastCallsRepository.GetTimeOfLastRequestForNewProducts();
            var timeOfThisRequest = DateTime.Now;
            var newProducts       = _pimQueryService.GetNewProductsSince(timeOfLastRequest);

            _lastCallsRepository.UpdateTimeOfLastRequestForNewProducts(timeOfThisRequest);

            if (newProducts == null || newProducts.Length == 0)
            {
                return(null);
            }

            var createdArticles = _articleManager.CreateArticles(_mapper.MapPimProductsToVismaArticles(newProducts));

            if (createdArticles.Count == 0)
            {
                return(null);
            }

            foreach (var market in _settings.Markets)
            {
                _pimCommandService.ReportVismaArticleNumbers(market.MarketKey, market.VendorId, createdArticles);
            }

            return(new
            {
                TimeOfLastRequest = timeOfLastRequest,
                NewProductsFromPim = newProducts,
                CreatedArticles = createdArticles
            });
        }