public async Task<List<InitialDeviceConfig>> GetDeviceListAsync() { return await Task.Run(() => { _logger.LogInfo("********** READING DEVICES FROM APP.CONFIG ********** "); if (_devices.Any()) return _devices; StringCollection deviceList = Properties.Settings.Default.DeviceList; foreach (string device in deviceList) { string[] deviceConfigElements = device.Split(','); var deviceConfig = new InitialDeviceConfig(); if (deviceConfigElements.Length > 1) { deviceConfig.DeviceId = deviceConfigElements[0]; deviceConfig.HostName = _hostName; deviceConfig.Key = deviceConfigElements[1]; _devices.Add(deviceConfig); } } return _devices; }); }
public IDevice CreateDevice(ILogger logger, ITransportFactory transportFactory, ITelemetryFactory telemetryFactory, IConfigurationProvider configurationProvider, InitialDeviceConfig config) { var device = new DeviceBase(logger, transportFactory, telemetryFactory, configurationProvider); device.Init(config); return device; }
protected virtual void InitDeviceInfo(InitialDeviceConfig config) { dynamic initialDevice = SampleDeviceFactory.GetSampleSimulatedDevice(config.DeviceId, config.Key); DeviceProperties = DeviceSchemaHelper.GetDeviceProperties(initialDevice); Commands = CommandSchemaHelper.GetSupportedCommands(initialDevice); HostName = config.HostName; PrimaryAuthKey = config.Key; }
public void Init(InitialDeviceConfig config) { InitDeviceInfo(config); Transport = TransportFactory.CreateTransport(this); _telemetryController = TelemetryFactory.PopulateDeviceWithTelemetryEvents(this); InitCommandProcessors(); }
protected virtual void InitDeviceInfo(InitialDeviceConfig config) { DeviceModel initialDevice = SampleDeviceFactory.GetSampleSimulatedDevice(config.DeviceId, config.Key); DeviceProperties = initialDevice.DeviceProperties; Commands = initialDevice.Commands ?? new List<Command>(); Telemetry = initialDevice.Telemetry ?? new List<Common.Models.Telemetry>(); HostName = config.HostName; PrimaryAuthKey = config.Key; }
public async Task AddOrUpdateDeviceAsync(InitialDeviceConfig deviceConfig) { var deviceEnity = new DeviceListEntity() { DeviceId = deviceConfig.DeviceId, HostName = deviceConfig.HostName, Key = deviceConfig.Key }; var operation = TableOperation.InsertOrReplace(deviceEnity); await _azureTableStorageClient.ExecuteAsync(operation); }
public async Task AddOrUpdateDeviceAsync(InitialDeviceConfig deviceConfig) { var devicesTable = await AzureTableStorageHelper.GetTableAsync(_storageConnectionString, _deviceTableName); var deviceEnity = new DeviceListEntity() { DeviceId = deviceConfig.DeviceId, HostName = deviceConfig.HostName, Key = deviceConfig.Key }; var operation = TableOperation.InsertOrReplace(deviceEnity); await devicesTable.ExecuteAsync(operation); }
public void GetDeviceInfoTests() { var config = new InitialDeviceConfig(); config.HostName = "HostName"; config.DeviceId = "test"; config.Key = "key"; deviceBase.Init(config); var device = deviceBase.GetDeviceInfo(); Assert.Equal(device.DeviceProperties.DeviceID, "test"); Assert.Null(device.SystemProperties); }
public CoolerDeviceTests() { _fixture = new Fixture(); _initConfig = _fixture.Create<InitialDeviceConfig>(); var loggerMock = new Mock<ILogger>(); _transportMock = new Mock<ITransport>(); var transportFactoryMock = new Mock<ITransportFactory>(); transportFactoryMock.Setup(x => x.CreateTransport(It.IsNotNull<IDevice>())).Returns(_transportMock.Object); var telemetryFactoryMock = new Mock<ITelemetryFactory>(); var configurationProviderMock = new Mock<IConfigurationProvider>(); var coolerDeviceFactory = new CoolerDeviceFactory(); _coolerDevice = coolerDeviceFactory.CreateDevice(loggerMock.Object, transportFactoryMock.Object, telemetryFactoryMock.Object, configurationProviderMock.Object, _initConfig) as CoolerDevice; loggerMock.Setup(x => x.LogInfo(It.IsAny<string>(), It.IsAny<object[]>())); }
public void InitTests() { var config = new InitialDeviceConfig(); config.HostName = "HostName"; config.DeviceId = "test"; config.Key = "key"; deviceBase.Init(config); Assert.Equal(deviceBase.DeviceID, "test"); Assert.Equal(deviceBase.HostName, "HostName"); Assert.Equal(deviceBase.PrimaryAuthKey, "key"); Assert.NotNull(deviceBase.DeviceProperties); Assert.NotNull(deviceBase.Commands); Assert.NotNull(deviceBase.Telemetry); }
public async Task<List<InitialDeviceConfig>> GetDeviceListAsync() { List<InitialDeviceConfig> devices = new List<InitialDeviceConfig>(); var devicesTable = await AzureTableStorageHelper.GetTableAsync(_storageConnectionString, _deviceTableName); TableQuery<DeviceListEntity> query = new TableQuery<DeviceListEntity>(); foreach (var device in devicesTable.ExecuteQuery(query)) { var deviceConfig = new InitialDeviceConfig() { HostName = device.HostName, DeviceId = device.DeviceId, Key = device.Key }; devices.Add(deviceConfig); } return devices; }
public async Task<List<InitialDeviceConfig>> GetDeviceListAsync() { List<InitialDeviceConfig> devices = new List<InitialDeviceConfig>(); TableQuery<DeviceListEntity> query = new TableQuery<DeviceListEntity>(); var devicesResult = await _azureTableStorageClient.ExecuteQueryAsync(query); foreach (var device in devicesResult) { var deviceConfig = new InitialDeviceConfig() { HostName = device.HostName, DeviceId = device.DeviceId, Key = device.Key }; devices.Add(deviceConfig); } return devices; }
public Task AddOrUpdateDeviceAsync(InitialDeviceConfig deviceConfig) { return Task.Run(() => { if (!_devices.Any()) return; var device = _devices.FirstOrDefault(x => x.DeviceId == deviceConfig.DeviceId); if (device != null) { device.Key = deviceConfig.Key; device.HostName = deviceConfig.HostName; } else { _devices.Add(deviceConfig); } }); }
public async void AddOrUpdateDeviceAsyncTest() { //add device InitialDeviceConfig device = new InitialDeviceConfig() { DeviceId = this.testDeviceId, HostName = this.testHostName, Key = this.testKey }; //should fail before GetDeviceListAsync initializes the known list of devices await this.repo.AddOrUpdateDeviceAsync(device); //get all devices Assert.Null(await this.repo.GetDeviceAsync(device.DeviceId)); List<InitialDeviceConfig> devices = await this.repo.GetDeviceListAsync(); Assert.False(devices.Contains(device)); //repeat and it should be added await this.repo.AddOrUpdateDeviceAsync(device); var returnedDevice = await this.repo.GetDeviceAsync(device.DeviceId); Assert.NotNull(returnedDevice); Assert.Equal(returnedDevice.Key, this.testKey); Assert.Equal(returnedDevice.HostName, this.testHostName); //repeat and it should be updated string changedKey = "changedKey"; device.Key = changedKey; string changedHostName = "changedHostName"; device.HostName = changedHostName; await this.repo.AddOrUpdateDeviceAsync(device); var changedDevice = await this.repo.GetDeviceAsync(device.DeviceId); Assert.NotNull(changedDevice); Assert.Equal(changedDevice.Key, changedKey); Assert.Equal(changedDevice.HostName, changedHostName); }
public async void RemoveDeviceAsyncTest() { InitialDeviceConfig device = new InitialDeviceConfig() { DeviceId = this.testDeviceId, HostName = this.testHostName, Key = this.testKey }; Assert.False(await this.repo.RemoveDeviceAsync(device.DeviceId)); await this.repo.GetDeviceListAsync(); await this.repo.AddOrUpdateDeviceAsync(device); Assert.True(await this.repo.RemoveDeviceAsync(device.DeviceId)); Assert.False(await this.repo.RemoveDeviceAsync(device.DeviceId)); }