public TResult Aggregate <TResult>(IAggregator <TResult> aggregator) { IsNotNull(aggregator, "aggregator"); var request = MapAggregateCodec.EncodeRequest(Name, ToData(aggregator)); var response = Invoke(request); var resultParameters = MapAggregateCodec.DecodeResponse(response); return(ToObject <TResult>(resultParameters.Response)); }
private async Task <TResult> AggregateAsync <TResult>(IAggregator <TResult> aggregator, CancellationToken cancellationToken) { var aggregatorData = ToSafeData(aggregator); var requestMessage = MapAggregateCodec.EncodeRequest(Name, aggregatorData); var responseMessage = await Cluster.Messaging.SendAsync(requestMessage, cancellationToken).CfAwait(); var response = MapAggregateCodec.DecodeResponse(responseMessage).Response; return(ToObject <TResult>(response)); }