public async Task GetBookings()
        {
            var config = Helpers.GetTestConfiguration();
            var client = new HourglassClient(config);
            var query  = new TimeBookingListQuery();

            query.Filter.Start = new DateRangeFilter
            {
                From = new DateTime(2018, 01, 01),
                To   = new DateTime(2018, 12, 31)
            };

            var bookings = await client.TimeBookings.GetListAsync(query);
        }
        /// <inheritdoc />
        public async Task <PaginatedResult <TimeBooking> > GetListAsync(TimeBookingListQuery query, CancellationToken token = default(CancellationToken))
        {
            if (query == null)
            {
                throw new ArgumentNullException(nameof(query));
            }

            var urlBuilder = new StringBuilder();

            urlBuilder.Append($"time_bookings.json?offset={query.Offset}&limit={query.Limit}");
            var filterQuery = query.Filter.ToQueryString();

            if (!string.IsNullOrEmpty(filterQuery))
            {
                urlBuilder.Append($"&{filterQuery}");
            }

            return(await GetListAsync <TimeBooking>(new Uri(urlBuilder.ToString(), UriKind.Relative), token).ConfigureAwait(false));
        }