in src/Microsoft.Azure.NotificationHubs/NamespaceManager.cs [69:115]
public NamespaceManager(string connectionString, NotificationHubSettings settings)
{
if (string.IsNullOrWhiteSpace(connectionString))
{
throw new ArgumentNullException(nameof(connectionString));
}
_tokenProvider = SharedAccessSignatureTokenProvider.CreateSharedAccessSignatureTokenProvider(connectionString);
var configurationManager = new KeyValueConfigurationManager(connectionString);
_baseUri = GetBaseUri(configurationManager);
settings = settings ?? new NotificationHubSettings();
if (settings.HttpClient != null)
{
_httpClient = settings.HttpClient;
}
else if (settings.MessageHandler != null)
{
var httpClientHandler = settings.MessageHandler;
_httpClient = new HttpClient(httpClientHandler);
}
else if (settings.Proxy != null)
{
var httpClientHandler = new HttpClientHandler();
httpClientHandler.UseProxy = true;
httpClientHandler.Proxy = settings.Proxy;
_httpClient = new HttpClient(httpClientHandler);
}
else
{
_httpClient = new HttpClient();
}
if (settings.OperationTimeout == null)
{
OperationTimeout = TimeSpan.FromSeconds(60);
}
else
{
OperationTimeout = settings.OperationTimeout.Value;
}
_retryPolicy = settings.RetryOptions.ToRetryPolicy();
_httpClient.Timeout = OperationTimeout;
SetUserAgent();
}