Beispiel #1
0
        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;
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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);
        }
Beispiel #6
0
        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);
        }
Beispiel #7
0
        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;
        }
Beispiel #8
0
 public DeviceManifest Update([FromBody] DeviceManifest manifest)
 {
     return(_provisionM.Update(manifest));
 }