Ejemplo n.º 1
0
        public async Task <object> GetDeviceModules(string deviceId, AccessPolicyModel accessPolicyModel, string access_token)
        {
            RequestDeviceModel requestDeviceModel = new RequestDeviceModel
            {
                apiVersion              = "2018-08-30-preview",
                authorizationPolicyKey  = accessPolicyModel.SharedAccessKey,
                authorizationPolicyName = accessPolicyModel.SharedAccessKeyName,
                hostName    = accessPolicyModel.HostName,
                requestPath = string.Format("/devices/{0}/modules", deviceId)
            };
            string url     = "https://main.iothub.ext.azure.cn/api/dataPlane/get";
            var    request = new HttpRequestMessage(HttpMethod.Post, url);
            var    client  = this._clientFactory.CreateClient();

            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", access_token);
            string requestbody = JsonConvert.SerializeObject(requestDeviceModel);

            request.Content = new StringContent(requestbody, UnicodeEncoding.UTF8, "application/json");
            var response = await client.SendAsync(request);

            string result = await response.Content.ReadAsStringAsync();

            if (response.IsSuccessStatusCode)
            {
                JObject job = (JObject)JsonConvert.DeserializeObject(result);
                return(job);
            }
            else
            {
                return(response.ReasonPhrase);
            }
        }
Ejemplo n.º 2
0
        public async Task <string> UpdateDeviceTwin(string deviceId, Twin twin, AccessPolicyModel accessPolicyModel, string access_token)
        {
            //IoTHubDevice ioTHubDevice = new IoTHubDevice(accessPolicyModel);
            //return ioTHubDevice.UpdateDeviceTwin(deviceId, twin);
            RequestDeviceModel requestDeviceModel = new RequestDeviceModel()
            {
                hostName = accessPolicyModel.HostName,
                authorizationPolicyKey  = accessPolicyModel.SharedAccessKey,
                authorizationPolicyName = accessPolicyModel.SharedAccessKeyName,
                apiVersion  = "2018-08-30-preview",
                requestPath = string.Format("/twins/{0}", deviceId),
                requestBody = JsonConvert.SerializeObject(twin),
            };
            string url     = "https://main.iothub.ext.azure.cn/api/dataPlane/patch";
            var    request = new HttpRequestMessage(HttpMethod.Post, url);
            var    client  = this._clientFactory.CreateClient();

            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", access_token);
            string requestbody = JsonConvert.SerializeObject(requestDeviceModel);

            request.Content = new StringContent(requestbody, UnicodeEncoding.UTF8, "application/json");
            var response = await client.SendAsync(request);

            string result = await response.Content.ReadAsStringAsync();

            if (response.IsSuccessStatusCode)
            {
                return(result);
            }
            else
            {
                return(response.ReasonPhrase);
            }
        }
Ejemplo n.º 3
0
        public async Task <DeviceInfoModel> UpdateDeviceInfo(UpdateDeviceViewModel updateDeviceViewModel, AccessPolicyModel accessPolicyModel, string deviceId, string access_token)
        {
            DeviceInfoModel deviceInfoModel = await GetDeviceInfo(accessPolicyModel, deviceId, access_token);

            deviceInfoModel.status = updateDeviceViewModel.status;
            deviceInfoModel.authentication.symmetricKey.primaryKey   = updateDeviceViewModel.primaryKey;
            deviceInfoModel.authentication.symmetricKey.secondaryKey = updateDeviceViewModel.secondaryKey;
            RequestDeviceModel requestDeviceModel = new RequestDeviceModel
            {
                apiVersion             = "2018-08-30-preview",
                authorizationPolicyKey = accessPolicyModel.SharedAccessKey,
                etag = deviceInfoModel.etag,
                authorizationPolicyName = accessPolicyModel.SharedAccessKeyName,
                hostName    = accessPolicyModel.HostName,
                requestBody = JsonConvert.SerializeObject(deviceInfoModel),
                requestPath = string.Format("/devices/{0}", deviceId)
            };
            string url     = "https://main.iothub.ext.azure.cn/api/dataPlane/put";
            var    request = new HttpRequestMessage(HttpMethod.Post, url);
            var    client  = this._clientFactory.CreateClient();

            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", access_token);
            string requestbody = JsonConvert.SerializeObject(requestDeviceModel);

            request.Content = new StringContent(requestbody, UnicodeEncoding.UTF8, "application/json");
            var response = await client.SendAsync(request);

            string result = await response.Content.ReadAsStringAsync();

            if (response.IsSuccessStatusCode)
            {
                TModel <DeviceInfoModel> job = JsonConvert.DeserializeObject <TModel <DeviceInfoModel> >(result);
                return(job.body);
            }
            else
            {
                return(null);
            }
        }
Ejemplo n.º 4
0
        public async Task <object> GetIotDevices(AccessPolicyModel accessPolicyModel, string access_token)
        {
            RequestDeviceModel requestDeviceModel = new RequestDeviceModel()
            {
                hostName = accessPolicyModel.HostName,
                authorizationPolicyKey  = accessPolicyModel.SharedAccessKey,
                authorizationPolicyName = accessPolicyModel.SharedAccessKeyName,
                apiVersion  = "2018-08-30-preview",
                requestPath = "/devices/query",
                requestBody = "{\"query\":\"SELECT deviceId as deviceId, status as status, " +
                              "lastActivityTime as lastActivityTime, statusUpdatedTime as statusUpdateTime, " +
                              "authenticationType as authenticationType, cloudToDeviceMessageCount as cloudToDeviceMessageCount, " +
                              "deviceScope as deviceScope FROM devices WHERE (NOT IS_DEFINED(capabilities.iotEdge) " +
                              "OR capabilities.iotEdge=false)\"}",
            };
            string url     = "https://main.iothub.ext.azure.cn/api/dataPlane/post";
            var    request = new HttpRequestMessage(HttpMethod.Post, url);
            var    client  = this._clientFactory.CreateClient();

            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", access_token);
            string requestbody = JsonConvert.SerializeObject(requestDeviceModel);

            request.Content = new StringContent(requestbody, UnicodeEncoding.UTF8, "application/json");
            var response = await client.SendAsync(request);

            string result = await response.Content.ReadAsStringAsync();

            if (response.IsSuccessStatusCode)
            {
                return(result);
            }
            else
            {
                return(response.ReasonPhrase);
            }
        }