public void RunUnitOfWork(string jobKey) { var products = _source.GetProducts(_configuration.GetLastSuccessfulRun()).ToList(); var productsReceivedAtDateTime = DateTime.Now; if (products.Any()) { var logBuilder = new StringBuilder(); logBuilder.AppendLine("Processing " + products.Count + " products."); foreach (var product in products) { logBuilder.AppendLine(product.ToString()); } _logger.Debug(logBuilder.ToString()); _destination.SaveProducts(products); _configuration.SetLastSuccessfulRun(productsReceivedAtDateTime); } else { _logger.Debug("No notifications to run"); } }
/// <inheritdoc /> public List <Product> GetProducts(int pageSize = 10, int pageIndex = 0) { // Get the correct amount of products var products = _productReader.GetProducts().Skip(pageIndex * pageSize).Take(pageSize).ToList(); // Get the availiblity for each product foreach (var product in products) { product.Availability = _availabilityRepository.GetProductCount(product.Id); } return(products); }