public void Should_get_time_of_last_request_for_new_products()
        {
            // Arrange

            // Act
            var lastRequest = _repository.GetTimeOfLastRequestForNewProducts();

            // Assert
            Assert.That(lastRequest, Is.Not.Null);
        }
예제 #2
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
            });
        }