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