public JoinRequestMessageHandler(NetworkServerConfiguration configuration,
                                  IConcentratorDeduplication concentratorDeduplication,
                                  ILoRaDeviceRegistry deviceRegistry,
                                  ILogger <JoinRequestMessageHandler> logger,
                                  Meter meter)
 {
     this.configuration             = configuration;
     this.concentratorDeduplication = concentratorDeduplication;
     this.deviceRegistry            = deviceRegistry;
     this.joinRequestCounter        = meter?.CreateCounter <int>(MetricRegistry.JoinRequests);
     this.logger                  = logger;
     this.receiveWindowHits       = meter?.CreateCounter <int>(MetricRegistry.ReceiveWindowHits);
     this.receiveWindowMisses     = meter?.CreateCounter <int>(MetricRegistry.ReceiveWindowMisses);
     this.unhandledExceptionCount = meter?.CreateCounter <int>(MetricRegistry.UnhandledExceptions);
 }
 public TestDefaultLoRaRequestHandler(
     NetworkServerConfiguration configuration,
     ILoRaDeviceFrameCounterUpdateStrategyProvider frameCounterUpdateStrategyProvider,
     IConcentratorDeduplication concentratorDeduplication,
     ILoRaPayloadDecoder payloadDecoder,
     IDeduplicationStrategyFactory deduplicationFactory,
     ILoRaADRStrategyProvider loRaADRStrategyProvider,
     ILoRAADRManagerFactory loRaADRManagerFactory,
     IFunctionBundlerProvider functionBundlerProvider,
     ITestOutputHelper testOutputHelper) : base(
         configuration,
         frameCounterUpdateStrategyProvider,
         concentratorDeduplication,
         payloadDecoder,
         deduplicationFactory,
         loRaADRStrategyProvider,
         loRaADRManagerFactory,
         functionBundlerProvider,
         new TestOutputLogger <DefaultLoRaDataRequestHandler>(testOutputHelper),
         TestMeter.Instance)
 {
     this.configuration = configuration;
 }