public async Task <PagedResults <Event> > GetEventsByMeetAsync(
            int meetId,
            PagingOptions pagingOptions,
            SortOptions <Event, EventEntity> sortOptions,
            SearchOptions <Event, EventEntity> searchOptions,
            CancellationToken ct)
        {
            IQueryable <EventEntity> query = _context.Events
                                             .Where(r => r.meetId == meetId);

            query = searchOptions.Apply(query);
            query = sortOptions.Apply(query);

            var size = await query.CountAsync(ct);

            var items = await query
                        .Skip(pagingOptions.Offset.Value)
                        .Take(pagingOptions.Limit.Value)
                        .ProjectTo <Event>()
                        .ToArrayAsync(ct);


            BarHeightsProcessor bhp = new BarHeightsProcessor(_context, meetId);

            foreach (var evt in items)
            {
                evt.Params = await _paramsProcessor
                             .GetParameters(evt.eventId, ct);

                if (evt.Params.EventType[0] == 'V')
                {
                    evt.BarHeights = await bhp.GetHeights(evt.eventId, ct);
                }
            }

            return(new PagedResults <Event>
            {
                Items = items,
                TotalSize = size,
            });
        }
        public async Task <Collection <Event> > GetEventsByAthleteAsync(
            int athleteId,
            SortOptions <Event, EventEntity> sortOptions,
            SearchOptions <Event, EventEntity> searchOptions,
            CancellationToken ct)
        {
            var entries =
                _context.EventEntries.Where(r => r.athleteId == athleteId)
                .Select(r => r.eventId);

            IQueryable <EventEntity> query =
                _context.Events.Where(e => entries.Contains(e.eventId));

            query = searchOptions.Apply(query);
            query = sortOptions.Apply(query);

            var items = await query
                        .ProjectTo <Event>()
                        .ToArrayAsync(ct);

            BarHeightsProcessor bhp = new BarHeightsProcessor(
                _context, items[0].meetId);

            foreach (var evt in items)
            {
                evt.Params = await _paramsProcessor
                             .GetParameters(evt.eventId, ct);

                if (evt.Params.EventType[0] == 'V')
                {
                    evt.BarHeights = await bhp.GetHeights(evt.eventId, ct);
                }
            }

            return(new Collection <Event>
            {
                Value = items
            });
        }