Table of Contents

Namespace NRules.Aggregators

Contains types that implement aggregation of facts as part of rules engine execution.

Classes

AggregateExpressionExtensions

Extension methods used for working with collections of aggregate expressions.

AggregationContext

Context associated with the aggregation operation.

AggregationResult

Result of the aggregation.

AggregatorRegistry

Registry of custom aggregator factories.

Interfaces

IAggregateExpression

Expression used by an aggregator, compiled to an executable form.

IAggregator

Base interface for fact aggregators. An aggregator is a stateful element of the rules engine, that receives matching facts of a particular kind, and can combine them into a synthetic fact, that is then used by the downstream logic in the rule. Aggregator also receives updates and removals for the matching facts, so that it can keep the corresponding aggregate facts in sync. An aggregator must be supplemented by a corresponding implementation of IAggregatorFactory that knows how to create new instances of the aggregator.

IAggregatorFactory

Base interface for aggregator factories. Aggregator factory constructs new instances of IAggregator of a given type, so that they can accumulate aggregation results. An IAggregatorFactory type must either be registered in AggregatorRegistry, or provided in the canonical rule model via CustomFactoryType. If both are provided, the aggregator factory at the AggregateElement level takes precedence.

Enums

AggregationAction

Action that aggregation performed on the aggregate, based on added/modified/removed facts.