示例#1
0
        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");
            }
        }
示例#2
0
        /// <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);
        }