in src/Microsoft.Azure.NotificationHubs/NotificationHubClient.cs [60:114]
public NotificationHubClient(string connectionString, string notificationHubPath, NotificationHubSettings settings)
{
if (string.IsNullOrWhiteSpace(connectionString))
{
throw new ArgumentNullException(nameof(connectionString));
}
if (string.IsNullOrWhiteSpace(notificationHubPath))
{
throw new ArgumentNullException(nameof(notificationHubPath));
}
_notificationHubPath = notificationHubPath;
_tokenProvider = SharedAccessSignatureTokenProvider.CreateSharedAccessSignatureTokenProvider(connectionString);
var configurationManager = new KeyValueConfigurationManager(connectionString);
_namespaceManager = NamespaceManager.CreateFromConnectionString(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();
}