in src/Microsoft.Azure.NotificationHubs/NotificationHubClient.cs [3289:3320]
private async Task<TEntity> GetEntityImplAsync<TEntity>(string entityCollection, string entityId, CancellationToken cancellationToken, bool throwIfNotFound = true) where TEntity : EntityDescription
{
var requestUri = GetGenericRequestUriBuilder();
requestUri.Path += $"{entityCollection}/{entityId}";
HttpStatusCode[] successfulResponseStatuses;
if (throwIfNotFound)
{
successfulResponseStatuses = new[] { HttpStatusCode.OK };
}
else
{
successfulResponseStatuses = new[] { HttpStatusCode.OK, HttpStatusCode.NotFound };
}
return await _retryPolicy.RunOperation(async (ct) =>
{
using (var request = CreateHttpRequest(HttpMethod.Get, requestUri.Uri, out var trackingId))
{
using (var response = await SendRequestAsync(request, trackingId, successfulResponseStatuses, ct).ConfigureAwait(false))
{
if (response.StatusCode == HttpStatusCode.NotFound)
return null;
using (var responseStream = await response.Content.ReadAsStreamAsync().ConfigureAwait(false))
{
return await ReadEntityAsync<TEntity>(responseStream).ConfigureAwait(false);
}
}
}
}, cancellationToken);
}