public async Task <IActionResult> Events(int?eventTypeId,
                                                 [FromQuery] int pageIndex = 0,
                                                 [FromQuery] int pageSize  = 6)
        {
            var query = (IQueryable <Event>)_context.Events;

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

            var eventsCount = await query.LongCountAsync();

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

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

            return(Ok(model));
        }
        public async Task <IActionResult> Items([FromQuery] int pageSize = 6, [FromQuery] int pageIndex = 0)
        {
            var totalItems = await _searchItemContext.SearchItems
                             .LongCountAsync();

            var itemsOnPage = await _searchItemContext.SearchItems
                              .OrderBy(s => s.ItemName)
                              .Skip(pageSize * pageIndex)
                              .Take(pageSize)
                              .ToListAsync();

            itemsOnPage = ChangeUrlPlaceHolder(itemsOnPage);
            var model = new PaginatedItemViewModel <SearchItem>(pageIndex, pageSize, totalItems, itemsOnPage);

            return(Ok(model));
        }
        public async Task <IActionResult> Items(
            [FromQuery] int eventCategoryId = 0,
            [FromQuery] int eventTypeId     = 0,
            [FromQuery] int eventLocationId = 0,
            [FromQuery] int pageindex       = 0,
            [FromQuery] int pagesize        = 9)
        {
            var root = (IQueryable <EventItem>)_context.eventitem;

            if (eventCategoryId != 0)
            {
                root = root.Where(c => c.EventCategoryId == eventCategoryId);
            }
            if (eventTypeId != 0)
            {
                root = root.Where(c => c.EventTypeId == eventTypeId);
            }
            if (eventLocationId != 0)
            {
                root = root.Where(c => c.EventLocationId == eventLocationId);
            }


            var itemsCount = await root.LongCountAsync();

            var items = await root.OrderBy(c => c.Title).Skip(pageindex * pagesize).Take(pagesize).ToListAsync();

            items = ChangePictureUrl(items); // as in postman we are not able to see actual pictures

            var model = new PaginatedItemViewModel <EventItem>
            {
                PageIndex = pageindex,
                PageSize  = pagesize,
                Count     = itemsCount,
                Data      = items
            };

            //return Ok(items)
            return(Ok(model));
        }
        public async Task <IActionResult> Items(int?restaurantId, [FromQuery] int pageSize = 6, [FromQuery] int pageIndex = 0)
        {
            var root = (IQueryable <SearchItem>)_searchItemContext.SearchItems;

            if (restaurantId.HasValue)
            {
                root = root.Where(s => s.RestaurantId == restaurantId);
            }
            var totalItems = await root
                             .LongCountAsync();

            var itemsOnPage = await _searchItemContext.SearchItems
                              .OrderBy(s => s.ItemName)
                              .Skip(pageSize * pageIndex)
                              .Take(pageSize)
                              .ToListAsync();

            itemsOnPage = ChangeUrlPlaceHolder(itemsOnPage);
            var model = new PaginatedItemViewModel <SearchItem>(pageIndex, pageSize, totalItems, itemsOnPage);

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

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

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

            return(Ok(model));
        }