private Dictionary <long, ResourceDescription> ProcessIterator(int iteratorId) { //TODO: mozda vec ovde napakovati dictionary<long, rd> ? int resourcesLeft; int numberOfResources = 10000; Dictionary <long, ResourceDescription> resourceDescriptions; using (NetworkModelGDAProxy gdaQueryProxy = proxyFactory.CreateProxy <NetworkModelGDAProxy, INetworkModelGDAContract>(EndpointNames.NetworkModelGDAEndpoint)) { if (gdaQueryProxy == null) { string message = "ProcessIterator() => NetworkModelGDAProxy is null."; Logger.LogError(message); throw new NullReferenceException(message); } try { resourcesLeft = gdaQueryProxy.IteratorResourcesTotal(iteratorId); resourceDescriptions = new Dictionary <long, ResourceDescription>(resourcesLeft); while (resourcesLeft > 0) { List <ResourceDescription> resources = gdaQueryProxy.IteratorNext(numberOfResources, iteratorId); foreach (ResourceDescription resource in resources) { resourceDescriptions.Add(resource.Id, resource); } resourcesLeft = gdaQueryProxy.IteratorResourcesLeft(iteratorId); } gdaQueryProxy.IteratorClose(iteratorId); } catch (Exception e) { string message = $"Failed to retrieve all Resourse descriptions with iterator {iteratorId}."; Logger.LogError(message, e); throw e; } } return(resourceDescriptions); }
private async Task <List <ResourceDescription> > ProcessIterator(int iteratorId) { int resourcesLeft; int numberOfResources = 10000; List <ResourceDescription> resourceDescriptions; using (NetworkModelGDAProxy gdaQueryProxy = proxyFactory.CreateProxy <NetworkModelGDAProxy, INetworkModelGDAContract>(EndpointNames.NetworkModelGDAEndpoint)) { if (gdaQueryProxy == null) { string message = "ProcessIterator() => NetworkModelGDAProxy is null."; Logger.LogError(message); throw new NullReferenceException(message); } try { resourcesLeft = gdaQueryProxy.IteratorResourcesTotal(iteratorId); resourceDescriptions = new List <ResourceDescription>(resourcesLeft); while (resourcesLeft > 0) { List <ResourceDescription> rds = gdaQueryProxy.IteratorNext(numberOfResources, iteratorId); resourceDescriptions.AddRange(rds); resourcesLeft = gdaQueryProxy.IteratorResourcesLeft(iteratorId); } gdaQueryProxy.IteratorClose(iteratorId); } catch (Exception e) { string message = $"Failed to retrieve all Resourse descriptions with iterator {iteratorId}."; Logger.LogError(message, e); throw e; } } return(resourceDescriptions); }