示例#1
0
        public async Task <IActionResult> GetAddresses(
            string stateId            = "None",
            [FromQuery] int pageIndex = 0,
            [FromQuery] int pageSize  = 6)
        {
            var query = (IQueryable <Address>)_context.Addresses;

            if (stateId != "None")
            {
                query = query.Where(a => a.Region == stateId);
            }

            var addressesCount = await query.LongCountAsync();

            var addresses = await query
                            .OrderBy(c => c.Region)
                            .Skip(pageIndex * pageSize)
                            .Take(pageSize)
                            .ToListAsync();

            var model = new PaginatedItemsViewModel <Address>
            {
                PageIndex = pageIndex,
                PageSize  = addresses.Count,
                Count     = addressesCount,
                Data      = addresses
            };

            return(Ok(model));
        }
示例#2
0
        public async Task <IActionResult> AuthorsAsync([FromQuery] int pageSize = 10, [FromQuery] int pageIndex = 0, string ids = null)
        {
            if (!string.IsNullOrEmpty(ids))
            {
                var item = await GetAuthorsByIdsAsync(ids);

                if (!item.Any())
                {
                    return(BadRequest("Ids values are invalid. It must be comma separated"));
                }

                return(Ok(item));
            }

            if (pageIndex <= 0 || pageSize <= 0)
            {
                return(BadRequest("Invalid page index or page size"));
            }

            var totalItems = await _catalogContext.Authors.LongCountAsync();

            var itemOnPage = await _catalogContext.Authors
                             .OrderBy(c => c.Name).Skip(pageSize * pageIndex).Take(pageSize).ToListAsync();

            var data = new PaginatedItemsViewModel <Author>(pageIndex, pageSize, totalItems, itemOnPage);

            return(Ok(data));
        }
示例#3
0
        public async Task <IActionResult> Items(string name,

                                                [FromQuery] int pageSize = 6,

                                                [FromQuery] int pageIndex = 0)

        {
            var totalItems = await _context.EventItems

                             .Where(c => c.Name.StartsWith(name))

                             .LongCountAsync();

            var itemsOnPage = await _context.EventItems

                              .Where(c => c.Name.StartsWith(name))

                              .OrderBy(c => c.Name)

                              .Skip(pageSize * pageIndex)

                              .Take(pageSize)

                              .ToListAsync();

            itemsOnPage = ChangePictureUrl(itemsOnPage);

            var model = new PaginatedItemsViewModel <EventItem>(pageIndex, pageSize, totalItems, itemsOnPage);



            return(Ok(model));
        }
        public async Task <IActionResult> ItemsAsync
        (
            [FromQuery] int pageSize  = 10,
            [FromQuery] int pageIndex = 0,
            string ids = null
        )
        {
            if (!string.IsNullOrEmpty(ids))
            {
                var items = await GetItemsByIdsAsync(ids);

                if (!items.Any())
                {
                    return(BadRequest("ids value invalid. Must be comma-separated list of numbers"));
                }

                return(Ok(items));
            }

            var totalItems = await _catalogContext.CatalogItems
                             .LongCountAsync();

            var itemsOnPage = await _catalogContext.CatalogItems
                              .OrderBy(item => item.Name)
                              .Skip(pageSize * pageIndex)
                              .Take(pageSize)
                              .ToListAsync();

            var model = new PaginatedItemsViewModel <CatalogItem>(pageIndex, pageSize, totalItems, itemsOnPage);

            return(Ok(model));
        }
示例#5
0
        private string ChangePrice(BasketItem itemToModify, decimal newPrice, PaginatedItemsViewModel <CatalogItem> catalogProducts)
        {
            var catalogProduct = catalogProducts.Data.Single(pr => pr.Id == int.Parse(itemToModify.ProductId));

            catalogProduct.Price = newPrice;
            return(JsonConvert.SerializeObject(catalogProduct));
        }
示例#6
0
        public async Task <ActionResult <PaginatedItemsViewModel <PurchaseRequestDetailDTO> > > GetListAsync(
            [FromQuery] int pageSize  = 10,
            [FromQuery] int pageIndex = 0,
            [FromQuery] Dictionary <string, Dictionary <string, List <string> > > filter = default,
            [FromQuery] Dictionary <string, int> sorting = default,
            [FromQuery] Dictionary <string, int> exact   = default,
            CancellationToken cancellation = default)
        {
            InitUserInfo();
            if (!AllowRead)
            {
                return(ValidationProblem());
            }
            CleanFilter(filter);
            var filterSpec = GenerateFilter(filter, exact);
            var totalItems = await _purchaseRequestDetailService.CountAsync(filterSpec, cancellation);

            var sortingSpec     = GenerateSortingSpec(sorting);
            var pagedFilterSpec = GenerateFilter(filter, exact, pageSize, pageIndex, sortingSpec);
            var items           = await _purchaseRequestDetailService.ListAsync(pagedFilterSpec, sortingSpec, false, cancellation);

            var model = new PaginatedItemsViewModel <PurchaseRequestDetailDTO>(pageIndex, pageSize, totalItems, items.Select(_mapper.Map <PurchaseRequestDetailDTO>));

            return(Ok(model));
        }
示例#7
0
        public async Task <IActionResult> ItemsAsyncReceitas([FromQuery] int pageSize = 10, [FromQuery] int pageIndex = 0, string ids = null)
        {
            if (!string.IsNullOrEmpty(ids))
            {
                List <Model.Receita> items = await GetItemsByIdsAsyncReceitas(ids);

                if (!items.Any())
                {
                    return(BadRequest("Valor de ids incorretos. Deve ser uma lista de números separados por vírgula."));
                }

                return(Ok(items));
            }

            long totalItems = await _receitaContext.Receitas
                              .LongCountAsync();

            var itemsOnPage = await _receitaContext.Receitas
                              .Include(categoria => categoria.Categoria)
                              .OrderBy(c => c.Titulo)
                              .Skip(pageSize * pageIndex)
                              .Take(pageSize)
                              .ToListAsync();

            PaginatedItemsViewModel <Model.Receita> model = new PaginatedItemsViewModel <Model.Receita>(pageIndex, pageSize, totalItems, itemsOnPage);

            return(Ok(model));
        }
示例#8
0
        public async Task <IActionResult> EventCategories(int?eventCategoryId,
                                                          [FromQuery] int pageIndex = 0,
                                                          [FromQuery] int pageSize  = 4)

        {
            var query = (IQueryable <EventItem>)_context.EventItems;

            if (eventCategoryId.HasValue)

            {
                query = query.Where(c => c.CategoryId == eventCategoryId);
            }

            var eventsCount = query.LongCountAsync();
            var events      = await query

                              .OrderBy(c => c.EventCategory)
                              .Skip(pageIndex * pageSize)
                              .Take(pageSize)
                              .ToListAsync();

            events = ChangeImageUrl(events);

            var model = new PaginatedItemsViewModel <EventItem>
            {
                PageIndex = pageIndex,
                PageSize  = events.Count,
                Count     = eventsCount.Result,
                Data      = events
            };

            return(Ok(model));
        }
示例#9
0
        public async Task <IActionResult> Items(
            int?categoryId,
            int?typeId,
            [FromQuery] int pageIndex = 0,
            [FromQuery] int pagesize  = 6)
        {
            var query = (IQueryable <EventItem>)_context.EventItems;

            if (categoryId.HasValue)
            {
                query = query.Where(i => i.CategoryId == categoryId);
            }
            if (typeId.HasValue)
            {
                query = query.Where(i => i.TypeId == typeId);
            }
            var itemCount = query.LongCountAsync();
            var result    = await query
                            .OrderBy(s => s.EventName)
                            .Skip(pageIndex * pagesize)
                            .Take(pagesize)
                            .ToListAsync();

            result = ChangeImageUrl(result);
            var model = new PaginatedItemsViewModel <EventItem>
            {
                PageIndex = pageIndex,
                PageSize  = result.Count,
                Count     = (int)itemCount.Result,
                Data      = result
            };


            return(Ok(model));
        }
        public async Task <IActionResult> Items(int?catalogTypeId, [FromQuery] int pageSize = 6, [FromQuery] int pageIndex = 0)
        {
            var root = _catalogContext.CatalogItems.AsQueryable();

            if (catalogTypeId.HasValue)
            {
                root = root.Where(c => c.CatalogTypeId == catalogTypeId);
            }

            var totalItems = await root
                             .LongCountAsync();

            var itemsOnPage = await root
                              .Select(x => new CatalogItemResponseVM
            {
                Description = x.Description,
                Id          = x.Id,
                Name        = x.Name,
                Price       = x.Price,
                PictureUrl  = x.PictureFileName
            })
                              .OrderBy(c => c.Name)
                              .Skip(pageSize * pageIndex)
                              .Take(pageSize)
                              .ToListAsync();

            ChangeItemPictureUrls(itemsOnPage);
            var model = new PaginatedItemsViewModel <CatalogItemResponseVM>(pageIndex, pageSize, totalItems, itemsOnPage);

            return(Ok(model));
        }
        public PaginatedItemsViewModel <SupplierViewModel> GetAllSuppliers(int pageSize, int currentPage)
        {
            var query = _db.Suppliers.OrderBy(t => t.Name);



            int    totalRecordCount = 0;
            double totalPages       = 0;
            int    totalPageCount   = 0;
            var    data             = new List <SupplierViewModel>();

            totalRecordCount = query.Count();
            totalPages       = (double)totalRecordCount / pageSize;
            totalPageCount   = (int)Math.Ceiling(totalPages);

            var pageData = query.Skip((currentPage - 1) * pageSize).Take(pageSize).OrderBy(t => t.Name).ToList();

            pageData.ForEach(p =>
            {
                data.Add(p.ToVm());
            });

            var response = new PaginatedItemsViewModel <SupplierViewModel>(currentPage, pageSize, totalPageCount, totalRecordCount, data);


            return(response);
        }
示例#12
0
        public async Task <IActionResult> SearchRestaurants([FromQuery] int pageIndex = 0, [FromQuery] int pageSize = 0) //int? catalogTypeId, int? catalogBrandId, [FromQuery]int pageSize = 6, [FromQuery]int pageIndex = 0
        {
            #region DP version
            try
            {
                IQueryable <Restaurant> result = null;
                result = RestaurantList.GetAll(); // ="Mango Tree"
                if (result.Any())
                {
                    var totalItems = await result.LongCountAsync();

                    var itemsOnPage = await result
                                      .Skip(pageSize *pageIndex)
                                      .OrderBy(c => c.Name)
                                      .Take(pageSize)
                                      .ToListAsync();

                    var model = new PaginatedItemsViewModel <Restaurant>(
                        pageIndex, pageSize, totalItems, itemsOnPage);
                    return(Ok(result));
                }
                return(NotFound());
            }
            catch (Exception ex)
            {
                return(BadRequest(ex));
            }
            #endregion
        }
        public async Task <IActionResult> Items(bool?isFraud, string nameDest, DateTime?transactionDate, [FromQuery] int pageSize = 6, [FromQuery] int pageIndex = 0)
        {
            var query = (IQueryable <TransactionItem>)_transactionContext.TransactionItems;

            if (isFraud.HasValue)
            {
                query = query.Where(ti => ti.IsFraud == isFraud);
            }
            if (!string.IsNullOrEmpty(nameDest))
            {
                query = query.Where(ti => ti.NameDest.StartsWith(nameDest));
            }
            if (transactionDate.HasValue)
            {
                query = query.Where(ti => ti.TransactionDate == transactionDate);
            }
            var totalItems = await query.LongCountAsync();

            var itemsOnPage = await query
                              .Skip(pageSize *pageIndex)
                              .OrderBy(c => c.NameOrig)
                              .Take(pageSize)
                              .ToListAsync();

            var model = new PaginatedItemsViewModel <TransactionItem>(
                pageIndex, pageSize, totalItems, itemsOnPage);

            return(Ok(model));
        }
示例#14
0
        public async Task <IActionResult> Items(
            [FromQuery] int pageIndex = 0,
            [FromQuery] int pageSize  = 6)
        {
            var itemsCount = await _context.EventItems.LongCountAsync();

            var items = await _context.EventItems
                        .OrderBy(c => c.Name)
                        .Skip(pageIndex * pageSize)
                        .Take(pageSize)
                        .ToListAsync();

            items = ChangeImageUrl(items);

            // items = ChangeImageUrl

            var model = new PaginatedItemsViewModel <EventItem>
            {
                PageIndex = pageIndex,
                PageSize  = items.Count,
                Data      = items,
                Count     = itemsCount
                            //KAL CODE itemsCount.Result
            };

            return(Ok(model));
        }
示例#15
0
        public async Task <IActionResult> Items(int?catalogTypeId, int?catalogBrandId, [FromQuery] int pageSize = 6, [FromQuery] int pageIndex = 0)
        {
            var root = (IQueryable <CatalogItem>)_catalogContext.CatalogItems; // not sent the call to db

            if (catalogTypeId.HasValue)
            {
                root = root.Where(x => x.CatalogTypeId == catalogTypeId);
            }
            if (catalogBrandId.HasValue)
            {
                root = root.Where(x => x.CatalogBrandId == catalogBrandId);
            }


            var totalItems = await root.LongCountAsync();

            //list of item we are going to send to the page
            var itemsOnPage = await root
                              .OrderBy(x => x.Name)
                              .Skip(pageSize * pageIndex).Take(pageSize).ToListAsync();

            //replace current external url to local
            itemsOnPage = ChangeUrlPlaceholder(itemsOnPage);

            var model = new PaginatedItemsViewModel <CatalogItem>(pageIndex, pageSize, totalItems, itemsOnPage);

            return(Ok(model));
        }
示例#16
0
        public async Task <IActionResult> FilterByDate(int?day, int?month, int?year,
                                                       [FromQuery] int pageIndex = 0,
                                                       [FromQuery] int pageSize  = 5)
        {
            var query = (IQueryable <EventItem>)_context.EventItems;

            if (day.HasValue && month.HasValue && year.HasValue)
            {
                query = query.Where(e => e.EventStartTime.Day == day)
                        .Where(e => e.EventStartTime.Month == month)
                        .Where(e => e.EventStartTime.Year == year);
            }
            var eventsCount = query.LongCountAsync();
            var events      = await query
                              .OrderBy(t => t.EventName)
                              .Skip(pageIndex * pageSize)
                              .Take(pageSize)
                              .ToListAsync();

            events = ChangeImageUrl(events);

            var model = new PaginatedItemsViewModel <EventItem>
            {
                PageIndex = pageIndex,
                PageSize  = events.Count,
                Count     = eventsCount.Result,
                Data      = events
            };

            return(Ok(model));
        }
        public async Task <IActionResult> Items(int?departmentTypeId, string departmentGroupId, [FromQuery] int pageSize = 10, [FromQuery] int pageIndex = 0)
        {
            var root = (IQueryable <Department>)_deptoContext.Departments;

            if (departmentTypeId.HasValue)
            {
                root = root.Where(ci => ci.DepartmentType == (DepartmentType)departmentTypeId);
            }

            if (departmentGroupId != null)
            {
                root = root.Where(ci => ci.DepartmentGroup.Id == departmentGroupId);
            }

            var totalItems = await root
                             .LongCountAsync();

            var itemsOnPage = await root
                              .Skip(pageSize *pageIndex)
                              .Take(pageSize)
                              .ToListAsync();

            // itemsOnPage = ComposePicUri(itemsOnPage);

            var model = new PaginatedItemsViewModel <Department>(
                pageIndex, pageSize, totalItems, itemsOnPage);

            return(Ok(model));
        }
        //IACtionResult is wrapped in task vs PicController because PicController will be called by this controller whereas
        //Catalogcontroller is called by the UI (picController is not)
        //pageIndex is which page the data User wants to see the data for
        //pageSize is how many items are in per page
        //[FromQuery] attribute indicates that the parameter will come from the query
        //use of Query route means you must remove the URI route
        public async Task <IActionResult> Items(
            [FromQuery] int pageIndex = 0,
            [FromQuery] int pageSize  = 6)
        {
            //LINQ query to get the total # of records in the Items Database, similar to Select Count(*) from CatalogItems
            var itemsCount = await _context.CatalogItems.LongCountAsync();

            //context is the entity core parameter; CatalogItems is the table; then we need a LINQ query
            //Need to grab data from catalogitems just for this page index and page size
            //this call happens in 2ndary thread, but we wait for the secondary thread to finish and give back the data
            //asynchronous will happen in the secondary thread
            var items = await _context.CatalogItems
                        .Skip(pageIndex *pageSize)
                        .Take(pageSize)
                        .ToListAsync();

            //After getting items, we're going to replace the pictureURL via the below method and pass along the items
            items = ChangePictureUrl(items);

            var model = new PaginatedItemsViewModel <CatalogItem>
            {
                PageIndex = pageIndex,
                PageSize  = pageSize,
                Count     = itemsCount,
                Data      = items
            };

            //when making an API call, you must send back a status (200 = good, 400 = bad, 500 = internal server errors)
            return(Ok(model));
        }
        public IActionResult Get([FromQuery] int pageSize = 10, [FromQuery] int pageIndex = 0)
        {
            var items = new List <string>
            {
                "i01", "i02", "i03", "i04", "i05", "i06", "i07", "i08", "i09", "i10",
                "i11", "i12", "i13", "i14", "i15", "i16",
            };

            var total = items.Count;

            List <string> itemsOnPage;

            if (pageSize * pageIndex + pageSize > total)
            {
                itemsOnPage = items.GetRange(pageSize * pageIndex, total - pageSize * pageIndex);
            }
            else
            {
                itemsOnPage = items.GetRange(pageSize * pageIndex, pageSize);
            }

            var model = new PaginatedItemsViewModel <string>(
                pageIndex, pageSize, total, itemsOnPage
                );

            return(Ok(model));
        }
示例#20
0
        public async Task <PaginatedItemsViewModel <DocumentViewModel> > GetDocumentsPaginatedAsync(
            DocumentsFilter parameters,
            int pageSize,
            int pageIndex)
        {
            var documentsQuery = _context.Documents.Filter(parameters);
            var totalCount     = await documentsQuery.LongCountAsync();

            var documentsOnPage = await documentsQuery
                                  .OrderByDescending(d => d.CreationDate)
                                  .Skip(pageSize * pageIndex)
                                  .Take(pageSize)
                                  .Select(d => new DocumentViewModel
            {
                ID           = d.ID,
                CreationDate = d.CreationDate,
                Name         = d.Name,
                Extension    = d.Originals.Where(o => o.ForSign).Select(o => o.Extension).FirstOrDefault(),
                DocumentType = d.DocumentType.Name
            })
                                  .ToListAsync();

            var model = new PaginatedItemsViewModel <DocumentViewModel>(
                pageIndex, pageSize, totalCount, documentsOnPage);

            return(model);
        }
示例#21
0
        public async Task <IActionResult> EventItems(
            int?zipcodeId,
            [FromQuery] int pageIndex = 0,
            [FromQuery] int pageSize  = 6
            )
        {
            var query = (IQueryable <EventItem>)_context.EventItems;

            query = query.Where(c => c.Location.ZipCodeId == zipcodeId);

            var eventItemsCount = await query.LongCountAsync();

            var eventItems = await query
                             .OrderBy(c => c.Title)
                             .Skip(pageIndex * pageSize)
                             .Take(pageSize)
                             .ToListAsync();

            eventItems = ChangePictureUrl(eventItems);

            var model = new PaginatedItemsViewModel <EventItem>
            {
                PageIndex = pageIndex,
                PageSize  = eventItems.Count,
                Count     = eventItemsCount,
                Data      = eventItems
            };

            return(Ok(model));
        }
        public async Task <IActionResult> Items(int?catalogTypeId = 0, int?catalogBrandId = null, [FromQuery] int pageSize = 6, [FromQuery] int pageIndex = 0)
        {
            // IQueryable used to indicate that the query is not ready yet and we will not make db call
            var root = (IQueryable <CatalogItem>)_catalogContext.CatalogItems;

            if (catalogTypeId != 0)
            {
                root = root.Where(c => c.CatalogTypeId == catalogTypeId);
            }
            if (catalogBrandId.HasValue)
            {
                root = root.Where(c => c.CatalogBrandId == catalogBrandId);
            }

            var totalItems = await root.LongCountAsync();

            var itemsOnPage = await root
                              .OrderBy(c => c.Name)
                              .Skip(pageSize * pageIndex)
                              .Take(pageSize)
                              .ToListAsync();

            itemsOnPage = ChangeUrlPlaceHolder(itemsOnPage);
            var model = new PaginatedItemsViewModel <CatalogItem>(pageIndex, pageSize, totalItems, itemsOnPage);

            return(Ok(model));
        }
示例#23
0
        public async Task <IActionResult> ItemsAsync([FromQuery] int pageSize = 10, [FromQuery] int pageIndex = 0, string ids = null)
        {
            if (!string.IsNullOrEmpty(ids))
            {
                var items = await GetItemsByIdsAsync(ids);

                if (!items.Any())
                {
                    return(BadRequest("ids value invalid. Must be comma-separated list of numbers"));
                }

                return(Ok(items));
            }

            var totalItems = await _productRepository.GetAsyncProductCount();

            var itemsOnPage = await _productRepository.GetAsyncProductsItemsForPage(pageSize, pageIndex);

            /* The "awesome" fix for testing Devspaces */

            /*
             * foreach (var pr in itemsOnPage) {
             *  pr.Name = "Awesome " + pr.Name;
             * }
             *
             */

            var model = new PaginatedItemsViewModel <Product>(pageIndex, pageSize, totalItems, itemsOnPage);

            return(Ok(model));
        }
示例#24
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (PaginationParamsAreSet())
            {
                var size  = Convert.ToInt32(Page.RouteData.Values["size"]);
                var index = Convert.ToInt32(Page.RouteData.Values["index"]);
                Model = CatalogService.GetCatalogItemsPaginated(size, index);
            }
            else
            {
                Model = CatalogService.GetCatalogItemsPaginated(DefaultPageSize, DefaultPageIndex);
            }

            PeopleGrid.DataSource = new List <People>()
            {
                new People("Andy", "Wayne", "PG"),
                new People("Bill", "Johnson", "SD"),
                new People("Caroline", "Barry", "Manager")
            };
            PeopleGrid.DataBind();

            ProductList.DataSource = Model.Data;
            ProductList.DataBind();
            ConfigurePagination();
        }
        public async Task <IActionResult> Items(int?catalogTypeId, int?catalogBrandId, [FromQuery] int pageSize = 10, [FromQuery] int pageIndex = 0)
        {
            var root = (IQueryable <CatalogItem>)_context.CatalogItems;

            if (catalogTypeId.HasValue)
            {
                root = root.Where(ci => ci.CatalogTypeId == catalogTypeId);
            }

            if (catalogBrandId.HasValue)
            {
                root = root.Where(ci => ci.CatalogBrandId == catalogBrandId);
            }

            var totalItems = await root
                             .LongCountAsync();

            var itemsOnPage = await root
                              .Skip(pageSize *pageIndex)
                              .Take(pageSize)
                              .ToListAsync();

            itemsOnPage = ComposePicUri(itemsOnPage);

            var model = new PaginatedItemsViewModel <CatalogItem>(
                pageIndex, pageSize, totalItems, itemsOnPage);

            return(Ok(model));
        }
示例#26
0
        public async Task <IActionResult> Events(
            [FromQuery] int pageSize  = 6,
            [FromQuery] int pageIndex = 0)
        {
            var eventsCount =
                await _context.Events.LongCountAsync();

            var events = await _context.Events
                         .OrderBy(c => c.Title)
                         .Skip(pageIndex * pageSize)
                         .Take(pageSize)
                         .ToListAsync();

            events = ChangePictureUrl(events);

            var model = new PaginatedItemsViewModel <Event>
            {
                PageIndex = pageIndex,
                PageSize  = pageSize,
                Count     = eventsCount,
                Data      = events
            };

            return(Ok(model));
        }
示例#27
0
        public async Task <IActionResult> Items(
            [FromQuery] int pageSize  = 6,
            [FromQuery] int pageIndex = 0)
        {
            var itemsCount = await _context.EventItems.LongCountAsync();

            var items = await _context.EventItems
                        .OrderBy(e => e.Name)
                        .Skip(pageIndex * pageSize)
                        .Take(pageSize)
                        .ToListAsync();

            items = ChangePictureUrl(items);
            //var model=new PaginatedItemsViewModel<EventItem>()
            //{
            //    PageIndex = pageIndex,
            //    PageSize = pageSize,
            //    Count = itemsCount,
            //    Data = items
            //};

            var model = new PaginatedItemsViewModel <EventItem>(pageIndex, pageSize, itemsCount, items);

            return(Ok(model));
        }
        public async Task <IActionResult> Items(

            [FromQuery] int pageSize = 6,

            [FromQuery] int pageIndex = 0)

        {
            var itemsCount = await _context.EventItems.LongCountAsync();



            var items = await _context.EventItems

                        .OrderBy(c => c.Name)

                        .Skip(pageSize * pageIndex)

                        .Take(pageSize)

                        .ToListAsync();

            items = ChangePictureUrl(items);

            var model = new PaginatedItemsViewModel <EventItem>
            {
                PageSize  = pageSize,
                PageIndex = pageIndex,
                Count     = itemsCount,
                Data      = items
            };

            return(Ok(model));
        }
        public async Task <IActionResult> Items(int?catalogTypeId, int?catalogBrandId, [FromQuery] int pageSize = 6, [FromQuery] int pageIndex = 0)
        {
            var root = (IQueryable <CatalogItem>)_catalogContext.CatalogItems;

            if (catalogTypeId.HasValue)
            {
                root = root.Where(c => c.CatalogTypeId == catalogTypeId);
            }

            if (catalogBrandId.HasValue)
            {
                root = root.Where(c => c.CatalogBrandId == catalogBrandId);
            }

            var totalItems = await root.LongCountAsync();

            var itemsOnPage = await root.OrderBy(c => c.Name)
                              .Skip(pageSize * pageIndex)
                              .Take(pageSize)
                              .ToListAsync();

            itemsOnPage = ChangeUrlPlaceHolder(itemsOnPage);

            var model = new PaginatedItemsViewModel <CatalogItem>(pageIndex, pageSize, (int)totalItems, itemsOnPage);

            return(Ok(model));
        }
示例#30
0
        public async Task <IActionResult> GetItemsbyDate(
            DateTime dateval,
            [FromQuery] int pageIndex = 0,
            [FromQuery] int pageSize  = 3)
        {
            var query = (IQueryable <EventItem>)_context.EventItems;

            query = (IQueryable <EventItem>)query.Where(e => e.Event_Start_Time.Date == dateval.Date);

            var itemsCount = query.LongCountAsync();

            var items = await query
                        .OrderBy(c => c.Event_Name)
                        .Skip(pageIndex * pageSize)
                        .Take(pageSize)
                        .ToListAsync();

            items = ChangePictureUrl(items);
            var model = new PaginatedItemsViewModel <EventItem>
            {
                PageIndex = pageIndex,
                PageSize  = items.Count,
                Count     = itemsCount.Result,
                Data      = items
            };

            return(Ok(model));
        }