Example #1
0
        public ActionResult Detail(long id, string searchString, int?page)
        {
            var viewCounter     = (List <ViewCounterViewModel>)Session[CommonConstants.ViewCounterSession];
            int defaultPageSize = int.Parse(ConfigHelper.GetByKey("pageSizeAjax"));
            var product         = _productService.FindById(id);

            IncreaseView(viewCounter, id);
            var productVm       = Mapper.Map <Product, ProductViewModel>(product);
            var relatedProducts = _productService.GetRelatedProducts(id, 5);
            var hotProducts     = _productService.GetRelatedProducts(id, 5);

            List <string> listImages = new JavaScriptSerializer().Deserialize <List <string> >(productVm.MoreImages);
            var           categoryVm = Mapper.Map <ProductCategory, ProductCategoryViewModel>(_productCategoryService.FindById(productVm.CategoryID));

            ViewBag.Category        = categoryVm;
            ViewBag.MoreImages      = listImages;
            ViewBag.RelatedProducts = Mapper.Map <IEnumerable <Product>, IEnumerable <ProductViewModel> >(relatedProducts);
            ViewBag.Tags            = Mapper.Map <IEnumerable <Tag>, IEnumerable <TagViewModel> >(_productService.GetTagsByProduct(id));

            bool canReview = false;

            if (User.Identity.IsAuthenticated)
            {
                var userId = User.Identity.GetUserId();
                canReview = reviewService.CanReview(id, userId);
            }

            ViewBag.CanReview = canReview;

            CommonController common = new CommonController(_productService);
            int currentPageIndex    = page.HasValue ? page.Value : 1;

            productVm.ListProducts = common.ProductListAjax(page, searchString).ToPagedList(currentPageIndex, defaultPageSize);
            if (Request.IsAjaxRequest())
            {
                return(PartialView("_AjaxProductList", productVm.ListProducts));
            }
            else
            {
                return(View(productVm));
            }
        }