コード例 #1
0
        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));
        }
コード例 #2
0
        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));
        }