/// <summary> /// The method returns the view with list of all products and adds a pagination /// </summary> public ActionResult GetAllProducts(int page = 1) { IEnumerable <ProductDTO> productDTOs = productService.GetAllElements(); Mapper.Initialize(configuration => configuration.CreateMap <ProductDTO, ProductModel>()); var allProducts = Mapper.Map <IEnumerable <ProductDTO>, List <ProductModel> >(productDTOs); PaginationProductsModel productsWithPagination = CreatePaginationForProducts(allProducts, page); return(View("AllProducts", productsWithPagination)); }
/// <summary> /// The method shows all products with short-description and adds a pagination /// </summary> /// <returns>The views with list of products</returns> public ActionResult Index(int page = 1) { IEnumerable <ProductDTO> productDTOs = productService.GetAllElements(); productDTOs.ToList().ForEach(prod => prod.Description = prod.Description.Substring(0, 100)); Mapper.Initialize(configuratin => configuratin.CreateMap <ProductDTO, ProductModel>()); var productsForDisplay = Mapper.Map <IEnumerable <ProductDTO>, List <ProductModel> >(productDTOs); PaginationProductsModel productsWithPagination = CreatePaginationForProducts(productsForDisplay, page); return(View("Index", productsWithPagination)); }
/// <summary> /// The method adds the pagination for collection of products /// </summary> /// <param name="products">The list of product without pagination</param> /// <param name="page">The number of current page</param> private PaginationProductsModel CreatePaginationForProducts(IEnumerable <ProductModel> products, int page) { int amountItemOnPage = 10; IEnumerable <ProductModel> productsOnPage = products.Skip((page - 1) * amountItemOnPage).Take(amountItemOnPage); PageModel pageModel = new PageModel { PageNumber = page, PageCapacity = amountItemOnPage, TotalItems = products.Count() }; PaginationProductsModel productsOnPages = new PaginationProductsModel { Page = pageModel, Products = productsOnPage }; return(productsOnPages); }