public ProductPageDTO GetProductPage(string productAlias) { Product product = _dbContext.Products.Include(p => p.Page).Include(p => p.MainImage) .Include(p => p.Images).ThenInclude(itp => itp.Image) .Include(p => p.ProductToProductsChilds).ThenInclude(ptp => ptp.ProductChild).ThenInclude(p => p.MainImage) .Include(p => p.ProductToProductsChilds).ThenInclude(ptp => ptp.ProductChild).ThenInclude(p => p.Page) .FirstOrDefault(p => p.Page.Alias == productAlias); if (product == null || product.Page == null) { return(null); } IMapper mapper = new MapperConfiguration(cfg => { cfg.CreateMap <Product, ProductPageDTO>() .ForMember(prodDTO => prodDTO.Alias, opt => opt.MapFrom(prod => prod.Page.Alias)) .ForMember(prodDTO => prodDTO.Description, opt => opt.MapFrom(prod => prod.Page.Description)) .ForMember(prodDTO => prodDTO.Title, opt => opt.MapFrom(prod => prod.Page.Title)) .ForMember(prodDTO => prodDTO.Images, opt => opt.MapFrom(prod => prod.Images.Select(itp => itp.Image))) .ForMember(prodDTO => prodDTO.RelatedProducts, opt => opt.MapFrom(prod => prod.ProductToProductsChilds .Select(ptp => ptp.ProductChild))); cfg.CreateMap <Image, ImageDTO>(); }).CreateMapper(); ProductPageDTO productDTO = mapper.Map <ProductPageDTO>(product); return(productDTO); }
public ActionResult AddToCart(int productId, int quantity) { ProductPageDTO product = _productService.GetProduct(productId); _cart.AddItem(product, quantity); return(RedirectToAction("Index", "Home")); }
public ProductPageDTO GetProduct(int productId) { Product product = _dbContext.Products.Include(p => p.MainImage).Include(p => p.Page).FirstOrDefault(p => p.Id == productId); IMapper mapper = new MapperConfiguration(cfg => { cfg.CreateMap <Product, ProductPageDTO>() .ForMember(prodDTO => prodDTO.Alias, opt => opt.MapFrom(prod => prod.Page.Alias)); cfg.CreateMap <Image, ImageDTO>(); }).CreateMapper(); ProductPageDTO productDTO = mapper.Map <ProductPageDTO>(product); return(productDTO); }
public ActionResult Product(string productAlias) { ProductPageDTO productPageDTO = _productService.GetProductPage(productAlias); if (productPageDTO == null) { return(NotFound()); } IMapper mapper = new MapperConfiguration(cfg => { cfg.CreateMap <ProductPageDTO, ProductPageViewModel>(); cfg.CreateMap <ImageDTO, ImageViewModel>(); }).CreateMapper(); ProductPageViewModel model = mapper.Map <ProductPageViewModel>(productPageDTO); if (_siteSettings.TryGetValue("BigBannerId", out string bannerIdString)) { if (int.TryParse(bannerIdString, out int singleBannerId)) { BannerDTO bannerDTO = _bannerService.GetBanner(singleBannerId); IMapper bannerMapper = new MapperConfiguration(cfg => { cfg.CreateMap <BannerDTO, BannerViewModel>(); cfg.CreateMap <ImageDTO, ImageViewModel>(); }).CreateMapper(); BannerViewModel banner = bannerMapper.Map <BannerViewModel>(bannerDTO); ViewBag.SingleBanner = banner; } } ViewBag.Title = model.Title; return(View(model)); }
public static ProductsPage FromDTO(this ProductPageDTO Page) => new ProductsPage { Products = Page.Products.FromDTO(), TotalCount = Page.TotalCount };
public override void RemoveItem(ProductPageDTO product) { base.RemoveItem(product); Session.SetString("Cart", JsonConvert.SerializeObject(this)); }
public override void AddItem(ProductPageDTO product, int quantity) { base.AddItem(product, quantity); Session.SetString("Cart", JsonConvert.SerializeObject(this)); }