/// <summary> /// Gets the expression. /// </summary> /// <param name="entityType">Type of the entity.</param> /// <param name="serviceInstance">The service instance.</param> /// <param name="parameterExpression">The parameter expression.</param> /// <param name="selection">The selection.</param> /// <returns></returns> public override Expression GetExpression(Type entityType, IService serviceInstance, ParameterExpression parameterExpression, string selection) { var values = selection.Split('|'); ComparisonType comparisonType = values[0].ConvertToEnum <ComparisonType>(ComparisonType.EqualTo); decimal? amountValue = values[1].AsDecimalOrNull(); var qry = new BenevolenceRequestService((RockContext)serviceInstance.Context).Queryable(); var totalAmountEqualQuery = qry.Where(p => p.BenevolenceResults.Sum(a => a.Amount) == amountValue); BinaryExpression compareEqualExpression = FilterExpressionExtractor.Extract <Rock.Model.BenevolenceRequest>(totalAmountEqualQuery, parameterExpression, "p") as BinaryExpression; BinaryExpression result = FilterExpressionExtractor.AlterComparisonType(comparisonType, compareEqualExpression, null); return(result); }