コード例 #1
0
        public async Task <List <string> > GetConfiguredEndpointsAsync(CancellationToken ct)
        {
            GetConfiguredEndpointsMethodResponseModel response = null;
            List <string> endpoints = new List <string>();

            try
            {
                GetConfiguredEndpointsMethodRequestModel getConfiguredEndpointsMethodRequestModel = new GetConfiguredEndpointsMethodRequestModel();
                ulong?continuationToken = null;
                while (true)
                {
                    getConfiguredEndpointsMethodRequestModel.ContinuationToken = continuationToken;
                    _getConfiguredEndpointsMethod.SetPayloadJson(JsonConvert.SerializeObject(getConfiguredEndpointsMethodRequestModel));
                    CloudToDeviceMethodResult methodResult;
                    if (string.IsNullOrEmpty(_publisherModuleName))
                    {
                        methodResult = await _iotHubClient.InvokeDeviceMethodAsync(_publisherDeviceName, _getConfiguredEndpointsMethod, ct).ConfigureAwait(false);
                    }
                    else
                    {
                        methodResult = await _iotHubClient.InvokeDeviceMethodAsync(_publisherDeviceName, _publisherModuleName, _getConfiguredEndpointsMethod, ct).ConfigureAwait(false);
                    }
                    if (!ct.IsCancellationRequested)
                    {
                        if (methodResult.Status == (int)HttpStatusCode.OK)
                        {
                            response = JsonConvert.DeserializeObject <GetConfiguredEndpointsMethodResponseModel>(methodResult.GetPayloadAsJson());
                            if (response != null && response.Endpoints != null)
                            {
                                endpoints.AddRange(response.Endpoints.Select(e => e.EndpointUrl));
                            }
                            if (response == null || response.ContinuationToken == null)
                            {
                                break;
                            }
                            continuationToken = response.ContinuationToken;
                        }
                        else
                        {
                            LogMethodResult(methodResult, _publishNodesMethod.MethodName);
                            break;;
                        }
                    }
                    else
                    {
                        break;
                    }
                }
            }
            catch (Exception e)
            {
                Logger.Error(e, $"Exception ");
            }
            return(endpoints);
        }
コード例 #2
0
        private List <string> GetConfiguredEndpoints(CancellationToken ct)
        {
            string logPrefix = $"{_logClassPrefix}:GetConfiguredEndpoints:";
            GetConfiguredEndpointsMethodResponseModel response = null;
            List <string> endpoints = new List <string>();

            try
            {
                GetConfiguredEndpointsMethodRequestModel getConfiguredEndpointsMethodRequestModel = new GetConfiguredEndpointsMethodRequestModel();
                ulong?continuationToken = null;
                while (true)
                {
                    getConfiguredEndpointsMethodRequestModel.ContinuationToken = continuationToken;
                    _getConfiguredEndpointsMethod.SetPayloadJson(JsonConvert.SerializeObject(getConfiguredEndpointsMethodRequestModel));
                    CloudToDeviceMethodResult result;
                    if (string.IsNullOrEmpty(_publisherModuleName))
                    {
                        result = _iotHubClient.InvokeDeviceMethodAsync(_publisherDeviceName, _getConfiguredEndpointsMethod, ct).Result;
                    }
                    else
                    {
                        result = _iotHubClient.InvokeDeviceMethodAsync(_publisherDeviceName, _publisherModuleName, _getConfiguredEndpointsMethod, ct).Result;
                    }
                    response = JsonConvert.DeserializeObject <GetConfiguredEndpointsMethodResponseModel>(result.GetPayloadAsJson());
                    if (response != null && response.Endpoints != null)
                    {
                        endpoints.AddRange(response.Endpoints.Select(e => e.EndpointUrl).ToList());
                    }
                    if (response == null || response.ContinuationToken == null)
                    {
                        break;
                    }
                    continuationToken = response.ContinuationToken;
                }
            }
            catch (Exception e)
            {
                Logger.Fatal(e, $"{logPrefix} Exception ");
            }
            Logger.Debug($"{logPrefix} succeeded, got {endpoints.Count} endpoints");
            return(endpoints);
        }