Beispiel #1
0
        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"));
        }
Beispiel #2
0
        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"));
        }
Beispiel #3
0
        public static async Task <IActionResult> Run([HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req, ILogger log, ExecutionContext context)
        {
            log.LogInformation("C# HTTP trigger function processed a request.");

            var result = DeviceDefinition.Load();

            return(new OkObjectResult(result));
        }