public static async Task <IActionResult> Run([HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequest req, ILogger log, ExecutionContext executionContext) { log.LogInformation("C# HTTP trigger function processed a request."); var config = executionContext.BuildConfiguraion(); var account = AccountConfigration.Load().First(); var deviceDefinition = DeviceDefinition.Load(); var token = await Extensions.GetS2SAccessToken(account.ClientId, config[account.ClientSecretSettingName], account.Resource, account.Authority); _httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.AccessToken); var fb = new FarmBeatsClient(account.Url, _httpClient); foreach (var dm in deviceDefinition.deviceModels) { await fb.CreateDeviceModel(dm); } foreach (var sm in deviceDefinition.sensorModels) { await fb.CreateSensorModel(sm); } return(new OkObjectResult("OK")); }
public static async Task <IActionResult> Run([HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequest req, ILogger log, ExecutionContext executionContext) { log.LogInformation("C# HTTP trigger function processed a request."); var config = executionContext.BuildConfiguraion(); var account = AccountConfigration.Load().First(); var devicedefinitions = DeviceDefinition.Load(); var token = await Extensions.GetS2SAccessToken(account.ClientId, config[account.ClientSecretSettingName], account.Resource, account.Authority); _httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.AccessToken); var fb = new FarmBeatsClient(account.Url, _httpClient); foreach (var farm in account.farms) { foreach (var device in farm.devices) { var deviceModel = fb.GetDeviceModel(device.deviceModel).Result; var deviceDetail = await fb.CreateDevice(new Device(device.hardwareId, deviceModel.id, farm.id, new Location(0, 0), device.name, 300)); var sensorModels = devicedefinitions.deviceModels.Single(x => x.name == deviceModel.name).sensorModels; foreach (var sensor in sensorModels) { var sensorModel = fb.GetSensorModel(sensor).Result; await fb.CreateSensor(new Sensor(Guid.NewGuid().ToString(), sensorModel.id, deviceDetail.id, device.name + sensorModel.name)); } } } return(new OkObjectResult("OK")); }