public EventHubProducerClient GetEventHubProducerClient(EventHubClientOptions options, IAzureCredentialProvider provider = null)
        {
            EnsureArg.IsNotNull(options);

            if (options.AuthenticationType == AuthenticationType.ManagedIdentity)
            {
                EnsureArg.IsNotNull(options.EventHubName);
                EnsureArg.IsNotNull(options.EventHubNamespaceFQDN);

                var tokenCredential = new DefaultAzureCredential();
                var eventHubFQDN    = EventHubFormatter.GetEventHubFQDN(options.EventHubNamespaceFQDN);
                return(new EventHubProducerClient(eventHubFQDN, options.EventHubName, tokenCredential));
            }
            else if (options.AuthenticationType == AuthenticationType.ConnectionString)
            {
                EnsureArg.IsNotNull(options.ConnectionString);

                return(new EventHubProducerClient(options.ConnectionString));
            }
            else if (options.AuthenticationType == AuthenticationType.Custom)
            {
                EnsureArg.IsNotNull(options.EventHubName);
                EnsureArg.IsNotNull(options.EventHubNamespaceFQDN);
                EnsureArg.IsNotNull(provider);

                var eventHubFQDN = EventHubFormatter.GetEventHubFQDN(options.EventHubNamespaceFQDN);
                return(new EventHubProducerClient(eventHubFQDN, options.EventHubName, provider.GetCredential()));
            }
            else
            {
                var ex      = $"Unable to create Event Hub producer client for {options.EventHubName}";
                var message = "No authentication type was specified for EventHubClientOptions.";
                throw new Exception($"{ex} {message}");
            }
        }
Esempio n. 2
0
        public EventProcessorClient CreateProcessorClient(BlobContainerClient blobContainerClient, EventHubClientOptions options, EventProcessorClientOptions eventProcessorClientOptions, IAzureCredentialProvider provider = null)
        {
            EnsureArg.IsNotNull(blobContainerClient);
            EnsureArg.IsNotNull(eventProcessorClientOptions);
            EnsureArg.IsNotNull(options);
            EnsureArg.IsNotNull(options.EventHubConsumerGroup, nameof(options.EventHubConsumerGroup));

            if (options.AuthenticationType == AuthenticationType.ManagedIdentity)
            {
                EnsureArg.IsNotNull(options.EventHubNamespaceFQDN);
                EnsureArg.IsNotNull(options.EventHubName);

                var tokenCredential = new DefaultAzureCredential();
                var eventHubFQDN    = EventHubFormatter.GetEventHubFQDN(options.EventHubNamespaceFQDN);
                return(new EventProcessorClient(blobContainerClient, options.EventHubConsumerGroup, eventHubFQDN, options.EventHubName, tokenCredential, eventProcessorClientOptions));
            }
            else if (options.AuthenticationType == AuthenticationType.ConnectionString)
            {
                EnsureArg.IsNotNull(options.ConnectionString);
                return(new EventProcessorClient(blobContainerClient, options.EventHubConsumerGroup, options.ConnectionString, eventProcessorClientOptions));
            }
            else if (options.AuthenticationType == AuthenticationType.Custom)
            {
                EnsureArg.IsNotNull(options.EventHubNamespaceFQDN);
                EnsureArg.IsNotNull(options.EventHubName);
                EnsureArg.IsNotNull(provider);

                var eventHubFQDN = EventHubFormatter.GetEventHubFQDN(options.EventHubNamespaceFQDN);
                return(new EventProcessorClient(blobContainerClient, options.EventHubConsumerGroup, eventHubFQDN, options.EventHubName, provider.GetCredential(), eventProcessorClientOptions));
            }
            else
            {
                var ex      = $"Unable to create Event Hub processor client for {options.EventHubName}.";
                var message = "No authentication type was specified for EventHubClientOptions";
                throw new Exception($"{ex} {message}");
            }
        }