/// <inheritdoc />
        public Task <PagedData <LoadedPartitionInformationResult> > GetLoadedPartitionInfoListAsync(
            string metricName,
            string serviceName = default(string),
            Ordering?ordering  = Ordering.Desc,
            long?maxResults    = 0,
            ContinuationToken continuationToken = default(ContinuationToken),
            CancellationToken cancellationToken = default(CancellationToken))
        {
            metricName.ThrowIfNull(nameof(metricName));
            maxResults?.ThrowIfLessThan("maxResults", 0);
            var requestId   = Guid.NewGuid().ToString();
            var url         = "$/GetLoadedPartitionInfoList";
            var queryParams = new List <string>();

            // Append to queryParams if not null.
            metricName?.AddToQueryParameters(queryParams, $"MetricName={metricName}");
            serviceName?.AddToQueryParameters(queryParams, $"ServiceName={serviceName}");
            ordering?.AddToQueryParameters(queryParams, $"Ordering={ordering.ToString()}");
            maxResults?.AddToQueryParameters(queryParams, $"MaxResults={maxResults}");
            continuationToken?.AddToQueryParameters(queryParams, $"ContinuationToken={continuationToken.ToString()}");
            queryParams.Add("api-version=8.0");
            url += "?" + string.Join("&", queryParams);

            HttpRequestMessage RequestFunc()
            {
                var request = new HttpRequestMessage()
                {
                    Method = HttpMethod.Get,
                };

                return(request);
            }

            return(this.httpClient.SendAsyncGetResponseAsPagedData(RequestFunc, url, LoadedPartitionInformationResultConverter.Deserialize, requestId, cancellationToken));
        }