public async Task <GetOccupiedInstancesResponse> GetOccupiedInstancesAsync(string serviceTypeUri, CancellationToken cancellationToken) { var occupiedInstances = (await Task.WhenAll((await _fabricClient.GetActorsAsync(_actorProxyFactory, ApplicationUri, ActorServiceUri, cancellationToken)) .Select(actor => GetOccupiedInstancesAsync(actor.ActorId.GetStringId(), serviceTypeUri)))) .SelectMany(response => response.OccupiedInstances) .Distinct() .ToList(); return(new GetOccupiedInstancesResponse(occupiedInstances)); }
public static async Task <IEnumerable <ActorInformation> > GetActorsAsync(this FabricClient fabricClient, IActorProxyFactory actorProxyFactory, Uri applicationUri, Uri actorServiceUri, CancellationToken cancellationToken) => (await Task.WhenAll((await fabricClient.GetInt64RangePartitionsAsync(applicationUri, actorServiceUri)).Select( partition => fabricClient.GetActorsAsync(actorProxyFactory, actorServiceUri, partition.LowKey, cancellationToken)))) .SelectMany(x => x).ToList();
public async Task <IEnumerable <GetInstancesResponse> > GetInstancesAsync(CancellationToken cancellationToken) => (await Task.WhenAll((await _fabricClient.GetActorsAsync(_actorProxyFactory, ApplicationUri, ActorServiceUri, cancellationToken)) .Select(actor => GetInstancesAsync(actor.ActorId.GetStringId(), cancellationToken)))) .ToList();