public DeviceManifest Create(DeviceManifest manifest) { try { if (manifest.isValid()) { // Provision the device in IoT Hub var device = AsyncHelper.RunSync <Device>(() => _registryManager.AddDeviceAsync(new Device(manifest.serialnumber))); // Update the manifest and store in DocDb manifest.key = device.Authentication.SymmetricKey.PrimaryKey; _dbase.Insert(manifest); } else { throw new Exception(Errors.ERR_DEVICEM_MODEL_NOT_VALID); } } catch (Exception err) { throw new Exception(Errors.ERR_DEVICEM_BAGREQUEST, err); } return(manifest); }
public DeviceManifest Create(DeviceManifest manifest) { try { if (ApiUrl == string.Empty) { throw new Exception(Errors.ERR_PROVISIONM_MISSING_APIURL); } var uriBuilder = new UriBuilder(ApiUrl + "/devicemanifests"); if (DevKey != string.Empty) { uriBuilder.Query = "subscription-key=" + DevKey; } var payload = ModelManager.ModelToJson<DeviceManifest>(manifest); var json = Rest.Post(uriBuilder.Uri, payload); manifest = ModelManager.JsonToModel<DeviceManifest>(json); } catch (Exception err) { var errString = string.Format(Errors.ERR_PROVISIONM_MODEL_NOT_CREATED, manifest.model) + ", " + err.Message; if (err.InnerException != null) errString += ", " + err.InnerException.Message; throw new Exception(errString); } return manifest; }
public DeviceManifest Create(DeviceManifest manifest) { try { if (ApiUrl == string.Empty) { throw new Exception(Errors.ERR_PROVISIONM_MISSING_APIURL); } var uriBuilder = new UriBuilder(ApiUrl + "/devicemanifests"); if (DevKey != string.Empty) { uriBuilder.Query = "subscription-key=" + DevKey; } var payload = ModelManager.ModelToJson <DeviceManifest>(manifest); var json = Rest.Post(uriBuilder.Uri, payload); manifest = ModelManager.JsonToModel <DeviceManifest>(json); } catch (Exception err) { var errString = string.Format(Errors.ERR_PROVISIONM_MODEL_NOT_CREATED, manifest.model) + ", " + err.Message; if (err.InnerException != null) { errString += ", " + err.InnerException.Message; } throw new Exception(errString); } return(manifest); }
private void DeviceList_OnSelectionChanged(object sender, SelectionChangedEventArgs e) { if (DeviceList.Items.Count == 0) { return; } var deviceId = (string)DeviceList.SelectedItems[0]; PingFeed.Clear(); TelemetryFeed.Clear(); AlarmFeed.Clear(); _currDevice = _provisionM.GetById(deviceId); }
public DeviceManifest Update(DeviceManifest manifest) { try { if (manifest.isValid()) { this._dbase.Update(manifest); } else { throw new Exception(Errors.ERR_DEVICEM_MODEL_NOT_VALID); } } catch (Exception err) { throw new Exception(string.Format(Errors.ERR_DEVICEM_MODEL_NOT_UPDATED, manifest.model), err); } return(manifest); }
public DeviceManifest GetById(string id) { DeviceManifest manifest = null; try { var query = $"select * from DeviceManifest d where d.serialnumber='{id}'"; var manifestList = _dbase.SelectByQuery <DeviceManifest>(query); if (manifestList[0] != null) { manifest = manifestList[0]; } } catch (Exception err) { throw new Exception(Errors.ERR_DEVICEM_BAGREQUEST, err); } return(manifest); }
private async void ProvisionButton_Click(object sender, RoutedEventArgs e) { var location = await GetLocationAsync(); // initialize a device manifest var manifest = new DeviceManifest { latitude = location.lat, longitude = location.lon, manufacturer = "Looksfamiliar, Inc", model = "Weather Station - Win 10 Core IoT", firmwareversion = "1.0.0.0", version = "1.0.0.0", hub = ConfigurationManager.AppSettings["IoTHubName"], serialnumber = "d2c2d-" + Guid.NewGuid() }; manifest.properties.Add(new DeviceProperty("Hardware Platform", "Raspberry PI")); // provision the device in IoT Hub and store the manifest in DocumentDb manifest = _provisionM.Create(manifest); MessageBox.Show($"New Device Provisioned: {manifest.serialnumber}", "Confirmation", MessageBoxButton.OK); DeviceList.Items.Clear(); var devices = _provisionM.GetAll(); foreach (var device in devices.list) { DeviceList.Items.Add(device.serialnumber); } if (DeviceList.Items.Count <= 0) { return; } StartButton.IsEnabled = true; StopButton.IsEnabled = true; PingButton.IsEnabled = true; }
public DeviceManifest Update([FromBody] DeviceManifest manifest) { return(_provisionM.Update(manifest)); }