Example #1
0
        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);
        }
Example #2
0
        public ActionResult AddToCart(int productId, int quantity)
        {
            ProductPageDTO product = _productService.GetProduct(productId);

            _cart.AddItem(product, quantity);

            return(RedirectToAction("Index", "Home"));
        }
Example #3
0
        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));
        }
Example #5
0
 public static ProductsPage FromDTO(this ProductPageDTO Page) => new ProductsPage
 {
     Products = Page.Products.FromDTO(), TotalCount = Page.TotalCount
 };
Example #6
0
 public override void RemoveItem(ProductPageDTO product)
 {
     base.RemoveItem(product);
     Session.SetString("Cart", JsonConvert.SerializeObject(this));
 }
Example #7
0
 public override void AddItem(ProductPageDTO product, int quantity)
 {
     base.AddItem(product, quantity);
     Session.SetString("Cart", JsonConvert.SerializeObject(this));
 }