Beispiel #1
0
        public async Task <ProductsIndexViewModel> GetProducts(int pageIndex, int pageSize)
        {
            logger.LogInformation("GetProducts called");

            var response = await productApi.ListProductsAsync(
                new ListProductsRequest
            {
                PageIndex = pageIndex,
                PageSize  = pageSize
            }
                );

            var vm = new ProductsIndexViewModel
            {
                Products       = mapper.Map <List <ProductViewModel> >(response.Products),
                PaginationInfo = new PaginationInfoViewModel()
                {
                    ActualPage   = pageIndex,
                    ItemsPerPage = response.Products.Count,
                    TotalItems   = response.TotalProducts,
                    TotalPages   = int.Parse(Math.Ceiling(((decimal)response.TotalProducts / pageSize)).ToString())
                }
            };

            vm.PaginationInfo.Next     = (vm.PaginationInfo.ActualPage == vm.PaginationInfo.TotalPages - 1) ? "is-disabled" : "";
            vm.PaginationInfo.Previous = (vm.PaginationInfo.ActualPage == 0) ? "is-disabled" : "";

            return(vm);
        }