コード例 #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();
                }
            }
        });
コード例 #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);
        }
コード例 #3
0
        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);
            }
        }
コード例 #4
0
        /// <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));
        }
コード例 #5
0
 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
                 }
             }
         });
     }
 }
コード例 #6
0
 public ProductService(InternetShopDbContext db)
 {
     this.db = db;
 }
コード例 #7
0
 public CategoriesController(InternetShopDbContext context)
 {
     _context = context;
 }
コード例 #8
0
ファイル: UnitOfWork.cs プロジェクト: Zankomag/ExampleAPI
 public UnitOfWork(InternetShopDbContext dbContext)
 {
     this.context = dbContext;
 }