/// <summary>
 /// Create listener
 /// </summary>
 /// <param name="db"></param>
 /// <param name="events"></param>
 /// <param name="logger"></param>
 public ApplicationRecordQuery(IItemContainerFactory db, ILogger logger,
                               IApplicationRegistryEvents events = null)
 {
     _database   = new ApplicationDatabase(db, logger);
     _logger     = logger ?? throw new ArgumentNullException(nameof(logger));
     _unregister = events?.Register(this);
 }
        /// <summary>
        /// Create endpoint registry
        /// </summary>
        /// <param name="iothub"></param>
        /// <param name="broker"></param>
        /// <param name="logger"></param>
        /// <param name="activator"></param>
        /// <param name="events"></param>
        public EndpointRegistry(IIoTHubTwinServices iothub, IEndpointEventBroker broker,
                                ILogger logger, IActivationServices <EndpointRegistrationModel> activator,
                                IApplicationRegistryEvents events = null)
        {
            _iothub    = iothub ?? throw new ArgumentNullException(nameof(iothub));
            _logger    = logger ?? throw new ArgumentNullException(nameof(logger));
            _activator = activator ?? throw new ArgumentNullException(nameof(activator));
            _broker    = broker ?? throw new ArgumentNullException(nameof(broker));

            // Register for application registry events
            _unregister = events?.Register(this);
        }