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(); } } });
public static T AttachToContext <T>(this InternetShopDbContext context, T entity) where T : class { var result = context.Add(entity).Entity; context.SaveChanges(); return(result); }
protected void InMemoryTest(Action <InternetShopDbContext> action) { var options = new DbContextOptionsBuilder <InternetShopDbContext>() .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()) .Options; using (var context = new InternetShopDbContext(options)) { action(context); } }
/// <summary> /// Initializes a new instance of the <see cref="T:InternetShopParser.Model.Database.Services.ProductService"/> class. /// </summary> /// <param name="dbContext">Db context.</param> /// <param name="mapper">Mapper.</param> public ProductService(InternetShopDbContext dbContext, IHtmlParserService htmlParserService, IDateTimeProvider dateTimeProvider, IMapper mapper) { _dbContext = dbContext; _htmlParserService = htmlParserService; _dateTimeProvider = dateTimeProvider; _mapper = mapper; _product = RemoveServicePostfix(nameof(ProductService)); }
protected virtual void AddProducts(InternetShopDbContext context, int count) { for (int i = 1; i <= count; i++) { context.AttachToContext(new Product() { Name = nameof(Product) + i, DateCreate = _dateTimeProvider.UtcNow, ImageSource = i.ToString() + ".jpeg", Descriptions = nameof(Product.Descriptions) + i, Currency = "грн", Price = i, ProductUpdetePrices = new List <ProductUpdetePrice>() { new ProductUpdetePrice() { DateUpdate = _dateTimeProvider.UtcNow, PriceUpdate = i } } }); } }
public ProductService(InternetShopDbContext db) { this.db = db; }
public CategoriesController(InternetShopDbContext context) { _context = context; }
public UnitOfWork(InternetShopDbContext dbContext) { this.context = dbContext; }