public override void Evaluate( EventBean[] eventsPerStream, ICollection <EventBean> matchingEvents, ExprEvaluatorContext exprEvaluatorContext) { AggregationService.ClearResults(exprEvaluatorContext); if (matchingEvents == null) { return; } var events = new EventBean[eventsPerStream.Length + 1]; Array.Copy(eventsPerStream, 0, events, 1, eventsPerStream.Length); var evaluateParams = new EvaluateParams(events, true, exprEvaluatorContext); foreach (EventBean subselectEvent in matchingEvents) { events[0] = subselectEvent; var pass = (bool?)FilterExpr.Evaluate(evaluateParams); if (pass ?? false) { AggregationService.ApplyEnter(events, null, exprEvaluatorContext); } } }
public override Object Evaluate(EventBean[] eventsPerStream, bool isNewData, ICollection <EventBean> matchingEvents, ExprEvaluatorContext exprEvaluatorContext) { if (matchingEvents == null) { return(false); } if (matchingEvents.Count == 0) { return(false); } if (FilterExpr == null) { return(true); } // Evaluate filter var events = new EventBean[eventsPerStream.Length + 1]; var evaluateParams = new EvaluateParams(events, true, exprEvaluatorContext); Array.Copy(eventsPerStream, 0, events, 1, eventsPerStream.Length); foreach (var subselectEvent in matchingEvents) { // Prepare filter expression event list events[0] = subselectEvent; var pass = (bool?)FilterExpr.Evaluate(evaluateParams); if ((pass != null) && (pass.Value)) { return(true); } } return(false); }