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); }
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); }