< Summary

Class:Azure.Messaging.EventHubs.Samples.Sample03_PublishAnEventBatch
Assembly:Azure.Messaging.EventHubs.Samples
File(s):C:\Git\azure-sdk-for-net\sdk\eventhub\Azure.Messaging.EventHubs\samples\Sample03_PublishAnEventBatch.cs
Covered lines:0
Uncovered lines:10
Coverable lines:10
Total lines:79
Line coverage:0% (0 of 10)
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\Sample03_PublishAnEventBatch.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 batch with single event.
 14    /// </summary>
 15    ///
 16    public class Sample03_PublishAnEventBatch : IEventHubsSample
 17    {
 18        /// <summary>
 19        ///   The name of the sample.
 20        /// </summary>
 21        ///
 022        public string Name => nameof(Sample03_PublishAnEventBatch);
 23
 24        /// <summary>
 25        ///   A short description of the sample.
 26        /// </summary>
 27        ///
 028        public string Description => "An introduction to publishing events, using a batch with single event.";
 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            // To publish events, we will need to create a producer client.  Like any client, our Event Hub producer man
 41            // and should be explicitly closed or disposed, but it is not necessary to do both.  In this example, we wil
 42            // advantage of the new asynchronous dispose to ensure that we clean up our producer client when we are
 43            // done or when an exception is encountered.
 44
 045            await using (var producerClient = new EventHubProducerClient(connectionString, eventHubName))
 46            {
 47                // An Event Hub producer is not associated with any specific partition.  When publishing events,
 48                // it will allow the Event Hubs service to route the event to an available partition.
 49                //
 50                // Allowing automatic routing of partitions is recommended when:
 51                //  - The publishing of events needs to be highly available.
 52                //  - The event data should be evenly distributed among all available partitions.
 53                //
 54                // An event is represented by an arbitrary collection of bytes and metadata.  Event Hubs does not make a
 55                // assumptions about the data nor attempt to perform any operations on it; you are free to create the da
 56                // in whatever form makes sense for your scenario.
 57                //
 58                // In our case, we will translate a simple sentence into bytes and send it to our Event Hub.
 59
 060                using EventDataBatch eventBatch = await producerClient.CreateBatchAsync();
 061                eventBatch.TryAdd(new EventData(Encoding.UTF8.GetBytes("Hello, Event Hubs!")));
 62
 63                // When the producer sends the event, it will receive an acknowledgment from the Event Hubs service; so
 64                // long as there is no exception thrown by this call, the service is now responsible for delivery.  Your
 65                // event data will be published to one of the Event Hub partitions, though there may be a (very) slight
 66                // delay until it is available to be consumed.
 67
 068                await producerClient.SendAsync(eventBatch);
 69
 070                Console.WriteLine("The simple event batch has been published.");
 071            }
 72
 73            // At this point, our client has passed its "using" scope and has safely been disposed of.  We
 74            // have no further obligations.
 75
 076            Console.WriteLine();
 077        }
 78    }
 79}