コード例 #1
0
ファイル: TableEngine.cs プロジェクト: ociaw/TabStats
        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)));
        }
コード例 #2
0
ファイル: TableEngine.cs プロジェクト: ociaw/TabStats
        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));
            }
        }
コード例 #3
0
 public abstract Object Calculate(AggregateValueBag aggregateValues, ColumnValueBag <TInput> columnValues);
コード例 #4
0
ファイル: Aggregate.cs プロジェクト: ociaw/TabStats
 public abstract Object Calculate(AggregateValueBag aggregateValues, IEnumerable <ColumnValueBag <TInput> > rows);