public WeatherShieldDevice(ILogger logger, ITransportFactory transportFactory, ITelemetryFactory telemetryFactory,
     IConfigurationProvider configurationProvider, CancellationToken token) : base(logger, transportFactory, telemetryFactory,
         configurationProvider)
 {
     this.DeviceSensors = new SensorsCollection<AbstractSensor>();
     this._token = token;
     this._mutex = new Mutex();
 }
        public WeatherShieldViewModel()
        {
            if (deviceManager == null)
            {
                logger = new TraceLogger();
                deviceManager = new DeviceManager(logger, cancellationTokenSource.Token);
                RunAsync();
            }

            Sensors = new SensorsCollection<AbstractSensor>();

            weatherStationConsumer = new WeatherStationConsumer();
            weatherStationConsumer.HumiditySensorSessionStarted += deviceManager.StartDeviceSensorAsync;
            weatherStationConsumer.TemperatureSensorSessionStarted += deviceManager.StartDeviceSensorAsync;
            weatherStationConsumer.PerssureSensorSessionStarted += deviceManager.StartDeviceSensorAsync;

            weatherStationConsumer.HumiditySensorSessionStarted += SensorStarted;
            weatherStationConsumer.TemperatureSensorSessionStarted += SensorStarted;
            weatherStationConsumer.PerssureSensorSessionStarted += SensorStarted;

        }