< Summary

Class:Azure.Messaging.EventHubs.Samples.Sample07_PublishAnEventBatchToASpecificPartition
Assembly:Azure.Messaging.EventHubs.Samples
File(s):C:\Git\azure-sdk-for-net\sdk\eventhub\Azure.Messaging.EventHubs\samples\Sample07_PublishAnEventBatchToASpecificPartition.cs
Covered lines:0
Uncovered lines:16
Coverable lines:16
Total lines:81
Line coverage:0% (0 of 16)
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\Sample07_PublishAnEventBatchToASpecificPartition.cs

#LineLine coverage
 1// Copyright (c) Microsoft Corporation. All rights reserved.
 2// Licensed under the MIT License.
 3
 4using System;
 5using System.Linq;
 6using System.Text;
 7using System.Threading.Tasks;
 8using Azure.Messaging.EventHubs.Producer;
 9using Azure.Messaging.EventHubs.Samples.Infrastructure;
 10
 11namespace Azure.Messaging.EventHubs.Samples
 12{
 13    /// <summary>
 14    ///   An introduction to publishing events, specifying a specific partition for the batch to be published to.
 15    /// </summary>
 16    ///
 17    public class Sample07_PublishAnEventBatchToASpecificPartition : IEventHubsSample
 18    {
 19        /// <summary>
 20        ///   The name of the sample.
 21        /// </summary>
 22        ///
 023        public string Name => nameof(Sample07_PublishAnEventBatchToASpecificPartition);
 24
 25        /// <summary>
 26        ///   A short description of the sample.
 27        /// </summary>
 28        ///
 029        public string Description => "An introduction to publishing events, specifying a specific partition for the batc
 30
 31        /// <summary>
 32        ///   Runs the sample using the specified Event Hubs connection information.
 33        /// </summary>
 34        ///
 35        /// <param name="connectionString">The connection string for the Event Hubs namespace that the sample should tar
 36        /// <param name="eventHubName">The name of the Event Hub, sometimes known as its path, that she sample should ru
 37        ///
 38        public async Task RunAsync(string connectionString,
 39                                   string eventHubName)
 40        {
 41            // We will start by creating a producer client using its default set of options.
 42
 043            await using (var producerClient = new EventHubProducerClient(connectionString, eventHubName))
 44            {
 45                // To ensure that we request a valid partition, we'll need to read the metadata for the Event Hub.  We w
 46                // select the first available partition.
 47
 048                string firstPartition = (await producerClient.GetPartitionIdsAsync()).First();
 49
 50                // When publishing events, it may be desirable to request that the Event Hubs service place a batch on a
 51                // for organization and processing.  For example, you may have designated one partition of your Event Hu
 52                // for all of your telemetry-related events.
 53                //
 54                // This can be accomplished by setting the identifier of the desired partition when creating the batch. 
 55                // that if you are using a partition identifier, you may not also specify a partition key; they are mutu
 56                //
 57                // We will publish a small batch of events based on simple sentences.
 58
 59                // To choose a partition identifier, you will need to create a custom set of batch options.
 60
 061                var batchOptions = new CreateBatchOptions
 062                {
 063                    PartitionId = firstPartition
 064                };
 65
 066                using EventDataBatch eventBatch = await producerClient.CreateBatchAsync(batchOptions);
 067                eventBatch.TryAdd(new EventData(Encoding.UTF8.GetBytes("Hello, Event Hubs!")));
 068                eventBatch.TryAdd(new EventData(Encoding.UTF8.GetBytes("Goodbye, Event Hubs!")));
 69
 070                await producerClient.SendAsync(eventBatch);
 71
 072                Console.WriteLine("The event batch has been published.");
 073            }
 74
 75            // At this point, our client has passed its "using" scope and has safely been disposed of.  We
 76            // have no further obligations.
 77
 078            Console.WriteLine();
 079        }
 80    }
 81}