public virtual ActionResult GetProductsList(ProductsListType listType, int?page, int?pageSize, int?catId, DateTime?fromDate, ViewStyles?style, NumberOfCol?numberOfCol, bool?showPager) { var currentUser = UserManager.FindById(User.Identity.GetUserId()); IPagedList <TblProducts> products = null; switch (listType) { case ProductsListType.Newest: products = _productService.GetNewItems(page ?? 1, pageSize ?? 24, catId, fromDate); break; case ProductsListType.MostPopular: products = _productService.GetPopularItems(page ?? 1, pageSize ?? 24, catId, fromDate); break; case ProductsListType.HotList: products = _productService.GetHotList(page ?? 1, pageSize ?? 24, catId, fromDate); break; case ProductsListType.Featured: products = _productService.GetFeaturedItems(page ?? 1, pageSize ?? 24, catId, fromDate); break; case ProductsListType.BestSelling: products = _productService.GetBestSelling(page ?? 1, pageSize ?? 24, catId, fromDate); break; case ProductsListType.MostDownloaded: products = _productService.GetMostDownloadedItems(page ?? 1, pageSize ?? 24, catId, fromDate); break; } var model = new ProductsListModel() { PostsList = _productModelFactory.PrepareProductCardViewModel(products, currentUser, Url), ViewStyle = style ?? ViewStyles.Normal, PageIndex = page ?? 1, PageSize = pageSize, PostsListType = listType, FromDate = fromDate, FilterByCategoryId = catId, ShowPager = showPager ?? true, NumberOfCol = numberOfCol ?? NumberOfCol.Four }; return(View("Partials/_ProductsList", model)); }