public ActionResult GetFullProduct(int productId) { ProductFull productFull = new ProductFull(); productFull = _productManager.GetFullProduct(productId); return(Ok(productFull)); }
public ActionResult AddProduct([FromBody] ProductFull productFull) { productFull.Details.DatePublished = DateTime.Now; productFull.Product.Code = _productLogic.generateGUID(); int productId = _productManager.AddProduct(productFull); return(Ok(productId)); }
/// <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 } )); }
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); } }
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); }
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 }); } }
public ActionResult UpdateDetailedProduct(int id, [FromBody] ProductFull product) { return(Ok(_productManager.Update(id, product))); }