public virtual async Task <IReadOnlyList <PartitionKeyRange> > TryGetOverlappingRangesAsync( string collectionRid, Range <string> range, ITrace trace, bool forceRefresh = false) { using (ITrace childTrace = trace.StartChild("Try Get Overlapping Ranges", TraceComponent.Routing, Tracing.TraceLevel.Info)) { Debug.Assert(ResourceId.TryParse(collectionRid, out ResourceId collectionRidParsed), "Could not parse CollectionRid from ResourceId."); CollectionRoutingMap routingMap = await this.TryLookupAsync(collectionRid, null, null, CancellationToken.None, childTrace); if (forceRefresh && routingMap != null) { routingMap = await this.TryLookupAsync(collectionRid, routingMap, null, CancellationToken.None, childTrace); } if (routingMap == null) { DefaultTrace.TraceWarning(string.Format("Routing Map Null for collection: {0} for range: {1}, forceRefresh:{2}", collectionRid, range.ToString(), forceRefresh)); return(null); } return(routingMap.GetOverlappingRanges(range)); } }
public async Task <IReadOnlyList <PartitionKeyRange> > TryGetOverlappingRangesAsync( string collectionRid, Range <string> range, bool forceRefresh = false) { ResourceId collectionRidParsed; Debug.Assert(ResourceId.TryParse(collectionRid, out collectionRidParsed), "Could not parse CollectionRid from ResourceId."); CollectionRoutingMap routingMap = await this.TryLookupAsync(collectionRid, null, CancellationToken.None); if (forceRefresh && routingMap != null) { routingMap = await this.TryLookupAsync(collectionRid, routingMap, CancellationToken.None); } if (routingMap == null) { DefaultTrace.TraceInformation(string.Format("Routing Map Null for collection: {0} for range: {1}, forceRefresh:{2}", collectionRid, range.ToString(), forceRefresh)); return(null); } return(routingMap.GetOverlappingRanges(range)); }