< Summary

Class:Azure.Messaging.EventHubs.Samples.Sample06_PublishAnEventBatchWithPartitionKey
Assembly:Azure.Messaging.EventHubs.Samples
File(s):C:\Git\azure-sdk-for-net\sdk\eventhub\Azure.Messaging.EventHubs\samples\Sample06_PublishAnEventBatchWithPartitionKey.cs
Covered lines:0
Uncovered lines:15
Coverable lines:15
Total lines:80
Line coverage:0% (0 of 15)
Covered branches:0
Total branches:10
Branch coverage:0% (0 of 10)

Metrics

MethodCyclomatic complexity Line coverage Branch coverage
get_Name()-0%100%
get_Description()-0%100%
RunAsync()-0%0%

File(s)

C:\Git\azure-sdk-for-net\sdk\eventhub\Azure.Messaging.EventHubs\samples\Sample06_PublishAnEventBatchWithPartitionKey.cs

#LineLine coverage
 1// Copyright (c) Microsoft Corporation. All rights reserved.
 2// Licensed under the MIT License.
 3
 4using System;
 5using System.Text;
 6using System.Threading.Tasks;
 7using Azure.Messaging.EventHubs.Producer;
 8using Azure.Messaging.EventHubs.Samples.Infrastructure;
 9
 10namespace Azure.Messaging.EventHubs.Samples
 11{
 12    /// <summary>
 13    ///   An introduction to publishing events, using a partition key to group batches together.
 14    /// </summary>
 15    ///
 16    public class Sample06_PublishAnEventBatchWithPartitionKey : IEventHubsSample
 17    {
 18        /// <summary>
 19        ///   The name of the sample.
 20        /// </summary>
 21        ///
 022        public string Name => nameof(Sample06_PublishAnEventBatchWithPartitionKey);
 23
 24        /// <summary>
 25        ///   A short description of the sample.
 26        /// </summary>
 27        ///
 028        public string Description => "An introduction to publishing events, using a partition key to group batches toget
 29
 30        /// <summary>
 31        ///   Runs the sample using the specified Event Hubs connection information.
 32        /// </summary>
 33        ///
 34        /// <param name="connectionString">The connection string for the Event Hubs namespace that the sample should tar
 35        /// <param name="eventHubName">The name of the Event Hub, sometimes known as its path, that she sample should ru
 36        ///
 37        public async Task RunAsync(string connectionString,
 38                                   string eventHubName)
 39        {
 40            // We will start by creating a producer client using its default set of options.
 41
 042            await using (var producerClient = new EventHubProducerClient(connectionString, eventHubName))
 43            {
 44                // When publishing events, it may be desirable to request that the Event Hubs service keep the different
 45                // event batches together on the same partition.  This can be accomplished by setting a
 46                // partition key when publishing the batch.
 47                //
 48                // The partition key is NOT the identifier of a specific partition.  Rather, it is an arbitrary piece of
 49                // that Event Hubs uses as the basis to compute a hash value.  Event Hubs will associate the hash value 
 50                // partition, ensuring that any events published with the same partition key are routed to the same part
 51                //
 52                // Note that there is no means of accurately predicting which partition will be associated with a given 
 53                // we can only be assured that it will be a consistent choice of partition.  If you have a need to under
 54                // exact partition an event is published to, you will need to use an Event Hub producer associated with 
 55                //
 56                // We will publish a small batch of events based on simple sentences.
 57
 58                // To choose a partition key, you will need to create a custom set of batch options.
 59
 060                var batchOptions = new CreateBatchOptions
 061                {
 062                    PartitionKey = "Any Value Will Do..."
 063                };
 64
 065                using EventDataBatch eventBatch = await producerClient.CreateBatchAsync(batchOptions);
 066                eventBatch.TryAdd(new EventData(Encoding.UTF8.GetBytes("Hello, Event Hubs!")));
 067                eventBatch.TryAdd(new EventData(Encoding.UTF8.GetBytes("Goodbye, Event Hubs!")));
 68
 069                await producerClient.SendAsync(eventBatch);
 70
 071                Console.WriteLine("The event batch has been published.");
 072            }
 73
 74            // At this point, our client has passed its "using" scope and has safely been disposed of.  We
 75            // have no further obligations.
 76
 077            Console.WriteLine();
 078        }
 79    }
 80}