public IExtendedBoundClient <TR> Apply <TR>(Func <IDataAggregation <T>, IDataAggregation <TR> > dataAggregation) where TR : class { var dataAggregationBuilder = new DataAggregationBuilder <T>(Session); dataAggregation(dataAggregationBuilder); AppendDataAggregationBuilder(dataAggregationBuilder); return(new ExtendedBoundClient <TR>(Session, Command)); }
internal void Append(DataAggregationBuilder nextDataAggregationBuilder) { if (_nextDataAggregationBuilder != null) { _nextDataAggregationBuilder.Append(nextDataAggregationBuilder); return; } _nextDataAggregationBuilder = nextDataAggregationBuilder; }
private void AppendDataAggregationBuilder(DataAggregationBuilder dataAggregationBuilder) { if (Command.Details.Extensions.TryGetValue(ODataLiteral.Apply, out var applyExtension) && applyExtension is DataAggregationBuilder actualDataAggregationBuilder) { actualDataAggregationBuilder.Append(dataAggregationBuilder); } else { Command.Details.Extensions[ODataLiteral.Apply] = dataAggregationBuilder; } }