Esempio n. 1
0
        public void UpdateProductPrice(object state)
        => BaseInvoke <object>((aoResult) =>
        {
            AOResult <IEnumerable <ProductFullModel> > resultParse = _htmlParserService.GetProductsFromShopHtmlAsync().Result;
            if (resultParse.IsSuccess)
            {
                var optionsBuilder = new DbContextOptionsBuilder <InternetShopDbContext>();
                optionsBuilder.UseNpgsql(ConnectionString);

                using (var _dbContext = new InternetShopDbContext(optionsBuilder.Options))
                {
                    var productList = _dbContext.Products.ToList();
                    foreach (var productModel in resultParse.Result)
                    {
                        var product = productList.FirstOrDefault(x => x.Name.Contains(productModel.Name));
                        if (product != null && product.Price != productModel.Price)
                        {
                            product.Price = productModel.Price;
                            _dbContext.ProductUpdetePrices.Add(new ProductUpdetePrice()
                            {
                                DateUpdate  = _dateTimeProvider.UtcNow,
                                PriceUpdate = product.Price,
                                Product     = product
                            });
                        }
                    }
                    _dbContext.SaveChanges();
                }
            }
        });
Esempio n. 2
0
        public static T AttachToContext <T>(this InternetShopDbContext context, T entity)
            where T : class
        {
            var result = context.Add(entity).Entity;

            context.SaveChanges();

            return(result);
        }