/// <summary>
        /// Performs the query to the provider, passing the required arguments.
        /// </summary>
        /// <param name="provider">The API provider to use.</param>
        /// <param name="callback">The callback invoked on the UI thread after a result has
        /// been queried.</param>
        /// <exception cref="System.ArgumentNullException">provider</exception>
        protected override void QueryAsyncCore(APIProvider provider, APIProvider.
                                               ESIRequestCallback <T> callback)
        {
            provider.ThrowIfNull(nameof(provider));

            provider.QueryPagedEsi <T, U>(Method, callback, wrapped.GetESIParams());
        }