public IEnumerable<string> ResolveForRead(object partitionKey)
{
var allPartitions = new HashSet<string>();
switch (this.ReadMode)
{
case TransitionReadMode.ReadCurrent:
foreach (string collectionLink in this.CurrentResolver.ResolveForRead(partitionKey))
{
allPartitions.Add(collectionLink);
}
break;
case TransitionReadMode.ReadNext:
foreach (string collectionLink in this.NextResolver.ResolveForRead(partitionKey))
{
allPartitions.Add(collectionLink);
}
break;
case TransitionReadMode.ReadBoth:
foreach (string collectionLink in this.CurrentResolver.ResolveForRead(partitionKey))
{
allPartitions.Add(collectionLink);
}
foreach (string collectionLink in this.NextResolver.ResolveForRead(partitionKey))
{
allPartitions.Add(collectionLink);
}
break;
case TransitionReadMode.None:
throw new InvalidOperationException("Partitions are being migrated. Retry request with a finite delay.");
}
return allPartitions;
}