private void RetractFromAggregate(AggregationContext context, IFactAggregator aggregator, Aggregation aggregation, Tuple tuple, List <Fact> facts) { try { aggregator.Remove(context, aggregation, tuple, facts); } catch (ExpressionEvaluationException e) { if (!e.IsHandled) { throw new RuleLhsExpressionEvaluationException("Failed to evaluate aggregate expression", e.Expression.ToString(), e.InnerException); } ResetAggregator(aggregation, tuple, aggregator); } }
private void RetractFromAggregate(IExecutionContext context, IFactAggregator aggregator, Aggregation aggregation, Tuple tuple, IList <Fact> facts) { try { aggregator.Remove(aggregation, tuple, facts); } catch (AggregateExpressionException e) { bool isHandled = false; context.EventAggregator.RaiseAggregateFailed(context.Session, e.InnerException, e.Expression, e.Tuple, e.Fact, ref isHandled); if (!isHandled) { throw new RuleExpressionEvaluationException("Failed to evaluate aggregate expression", e.Expression.ToString(), e.InnerException); } ResetAggregator(aggregation, tuple, aggregator); } }