public EventHubCommunicationListener(
            ITraceWriter TraceWriter,
            IReliableStateManager stateManager,
            IReliableDictionary <string, string> stateDictionary,
            ServiceInitializationParameters serviceParameters,
            string eventHubName,
            string eventHubConnectionString,
            string eventHubConsumerGroupName,
            IEventDataHandler handler,
            EventHubCommunicationListenerMode Mode,
            string eventHubPartitionId)
        {
            this.ListenerMode = Mode;
            if (this.ListenerMode == EventHubCommunicationListenerMode.Single && string.IsNullOrEmpty(eventHubPartitionId))
            {
                throw new InvalidOperationException("Event hub communication listener in single mode requires a partition id");
            }


            this.m_TraceWriter = TraceWriter;

            this.m_InitParams             = serviceParameters;
            this.EventHubName             = eventHubName;
            this.EventHubConnectionString = eventHubConnectionString;
            this.Handler = handler;
            this.EventHubConsumerGroupName = eventHubConsumerGroupName;
            this.StateManager    = stateManager;
            this.StateDictionary = stateDictionary;
            this.ListenerMode    = Mode;


            this.m_TraceWriter.TraceMessage(
                string.Format(
                    "Event Hub Listener created for {0} on {1} group:{2} mode:{3}",
                    this.EventHubName,
                    this.Namespace,
                    this.EventHubConsumerGroupName,
                    this.ListenerMode.ToString()));
        }
        public EventHubCommunicationListener(
          ITraceWriter TraceWriter,
          IReliableStateManager stateManager,
          IReliableDictionary<string, string> stateDictionary,
          ServiceInitializationParameters serviceParameters,
          string eventHubName,
          string eventHubConnectionString,
          string eventHubConsumerGroupName,
          IEventDataHandler handler,
          EventHubCommunicationListenerMode Mode,
          string eventHubPartitionId)
        {
            this.ListenerMode = Mode;
            if (this.ListenerMode == EventHubCommunicationListenerMode.Single && string.IsNullOrEmpty(eventHubPartitionId))
            {
                throw new InvalidOperationException("Event hub communication listener in single mode requires a partition id");
            }


            this.m_TraceWriter = TraceWriter;

            this.m_InitParams = serviceParameters;
            this.EventHubName = eventHubName;
            this.EventHubConnectionString = eventHubConnectionString;
            this.Handler = handler;
            this.EventHubConsumerGroupName = eventHubConsumerGroupName;
            this.StateManager = stateManager;
            this.StateDictionary = stateDictionary;
            this.ListenerMode = Mode;


            this.m_TraceWriter.TraceMessage(
                string.Format(
                    "Event Hub Listener created for {0} on {1} group:{2} mode:{3}",
                    this.EventHubName,
                    this.Namespace,
                    this.EventHubConsumerGroupName,
                    this.ListenerMode.ToString()));
        }