Ejemplo n.º 1
0
        public ActionResult GetFullProduct(int productId)
        {
            ProductFull productFull = new ProductFull();

            productFull = _productManager.GetFullProduct(productId);
            return(Ok(productFull));
        }
Ejemplo n.º 2
0
        public ActionResult AddProduct([FromBody] ProductFull productFull)
        {
            productFull.Details.DatePublished = DateTime.Now;
            productFull.Product.Code          = _productLogic.generateGUID();

            int productId = _productManager.AddProduct(productFull);

            return(Ok(productId));
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Создает экземпляр и инициализирует поля класса.
 /// </summary>
 public ProductPage
 (
     SeoData seo,
     Navigation navigaton,
     List <Breadcrumb> breadcrumbs,
     Product product
 ) : base(seo, navigaton, breadcrumbs)
 {
     Product = new ProductFull(product);
 }
 public IEnumerable <CategoryBase> Resolve(Product source, ProductFull destination, IEnumerable <CategoryBase> destMember, ResolutionContext context)
 {
     return
         (source
          .ProductCategories
          .Select(
              pc =>
              new CategoryBase
     {
         Id = pc.Category.Id,
         Title = pc.Category.Title
     }
              ));
 }
Ejemplo n.º 5
0
        public ProductFull GetFullProduct(int productId)
        {
            using (EF.APShopContext context = new EF.APShopContext())
            {
                UnitOfWork uow = new UnitOfWork(context);

                EF.Product  EfProduct   = uow.Products.GetFullProduct(productId);
                ProductFull productFull = new ProductFull();

                var productDetailEntity = EfProduct.ProductDetails.SingleOrDefault();
                productFull.Details = _mapper.Map <ProductDetails>(productDetailEntity);
                productFull.Product = _mapper.Map <Product>(EfProduct);

                return(productFull);
            }
        }
Ejemplo n.º 6
0
        public int AddProduct(ProductFull fullProduct)
        {
            using (EF.APShopContext context = new EF.APShopContext())
            {
                UnitOfWork        uow              = new UnitOfWork(context);
                EF.Product        dbProduct        = _mapper.Map <EF.Product>(fullProduct.Product);
                EF.ProductDetails dbProductDetails = _mapper.Map <EF.ProductDetails>(fullProduct.Details);
                dbProduct.IsActive = true;

                dbProduct.ProductDetails.Add(dbProductDetails);
                uow.Products.AddProduct(dbProduct);

                uow.Commit();

                return(dbProduct.Id);
            }
        }
        public IEnumerable <RatingBase> Resolve(Product source, ProductFull destination, IEnumerable <RatingBase> destMember, ResolutionContext context)
        {
            return
                (source
                 .Ratings
                 .Select(
                     r =>
                     new RatingBase
            {
                Comment = r.Comment,
                Vote = r.Vote,

                User = new UserBase
                {
                    Id = r.User.Id,
                    UserName = r.User.UserName
                },
            }
                     ));
        }
        public ProductFull GetProductFull(int id)
        {
            _logger.LogTrace($"Getting product with id {id}");

            ProductFull foundProduct = null;

            var cacheKey      = $"ProdFull:{id}";
            var cachedProduct = _cache.Get <ProductFull>(cacheKey);

            if (cachedProduct != null)
            {
                foundProduct = cachedProduct;
            }
            else
            {
                var products =
                    _productRepository
                    .GetAll()
                    .Where(p => p.Id == id);
                products =
                    _productRepository
                    .WithBrand(products);
                products =
                    _productRepository
                    .WithCategories(products);
                products =
                    _productRepository
                    .WithRatings(products);
                foundProduct =
                    products
                    .ProjectTo <ProductFull>()
                    .FirstOrDefault();
                _cache
                .Set(cacheKey, foundProduct, "ProductFull");
            }

            return(foundProduct);
        }
Ejemplo n.º 9
0
        public ProductFull Update(int productId, ProductFull product)
        {
            using (EF.APShopContext context = new EF.APShopContext())
            {
                UnitOfWork uow = new UnitOfWork(context);

                var dbProductOld = uow.Products.GetById(productId);

                if (dbProductOld == null)
                {
                    throw new ArgumentNullException("Internal server error");
                }
                dbProductOld.IsActive = false;


                var dbProductDetailForAdd = _mapper.Map <EF.ProductDetails>(product.Details);
                dbProductDetailForAdd.Product = _mapper.Map <EF.Product>(product.Product);

                dbProductDetailForAdd.Product.IsActive = true;
                dbProductDetailForAdd.Product.Code     = dbProductOld.Code;

                uow.Products.AddProductDetails(dbProductDetailForAdd);

                uow.Commit();

                var dtop = _mapper.Map <Product>(dbProductDetailForAdd.Product);

                var dtopd = _mapper.Map <ProductDetails>(dbProductDetailForAdd);

                return(new ProductFull
                {
                    Product = dtop,
                    Details = dtopd
                });
            }
        }
Ejemplo n.º 10
0
 public ActionResult UpdateDetailedProduct(int id, [FromBody] ProductFull product)
 {
     return(Ok(_productManager.Update(id, product)));
 }