コード例 #1
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>
            {
                PageSize  = pageSize,
                PageIndex = pageIndex,
                Count     = totalItems,
                Data      = itemsOnPage
            };

            return(Ok(model));
        }
コード例 #2
0
        public async Task <IActionResult> Items(int?eventTypeId,
                                                int?eventLocationId, int?eventDateId,
                                                [FromQuery] int pageSize  = 6,
                                                [FromQuery] int pageIndex = 0)
        {
            var root = (IQueryable <EventItem>)_context.EventItems;

            if (eventTypeId.HasValue)
            {
                root = root.Where(c => c.EventTypeId == eventTypeId);
            }

            if (eventLocationId.HasValue)
            {
                root = root.Where(c => c.EventLocationId == eventLocationId);
            }

            if (eventDateId.HasValue)
            {
                root = root.Where(c => c.EventDateId == eventDateId);
            }

            var totalItems = await root
                             .LongCountAsync();

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

            itemsOnPage = ChangePictureUrl(itemsOnPage);

            var model = new PaginateditemsViewModel <EventItem>
            {
                PageSize  = pageSize,
                PageIndex = pageIndex,
                Count     = totalItems,
                Data      = itemsOnPage
            };

            return(Ok(model));
        }
コード例 #3
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(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));
        }