Ejemplo n.º 1
0
        private void CalculateAggregate(AggregateKey key)
        {
            ImmutableArray <Int32> columnMapping    = ColumnDependencyMappings[key];
            ImmutableArray <Int32> aggregateMapping = AggregateDependencyMappings[key];
            AggregateValueBag      aggregateBag     = new AggregateValueBag(AggregateRow, aggregateMapping);
            Aggregate <TInput>     aggregate        = Aggregates[key];
            Int32 aggregateIndex = AggregateIndexes[key];

            AggregateRow[aggregateIndex] = aggregate.Calculate(aggregateBag, Rows.Select(row => new ColumnValueBag <TInput>(row, columnMapping)));
        }
Ejemplo n.º 2
0
        private void CalculateColumn(ColumnKey key)
        {
            ImmutableArray <Int32> columnMapping    = ColumnDependencyMappings[key];
            ImmutableArray <Int32> aggregateMapping = AggregateDependencyMappings[key];
            AggregateValueBag      aggregateBag     = new AggregateValueBag(AggregateRow, aggregateMapping);
            Column <TInput>        column           = Columns[key];
            Int32 columnIndex = ColumnIndexes[key];

            foreach (var row in Rows)
            {
                var bag = new ColumnValueBag <TInput>(row, columnMapping);
                row[columnIndex] = column.Calculate(aggregateBag, new ColumnValueBag <TInput>(row, columnMapping));
            }
        }
Ejemplo n.º 3
0
 public abstract Object Calculate(AggregateValueBag aggregateValues, ColumnValueBag <TInput> columnValues);
Ejemplo n.º 4
0
 public abstract Object Calculate(AggregateValueBag aggregateValues, IEnumerable <ColumnValueBag <TInput> > rows);