Custom Aggregate Function: AggSumIf()
Review the documentation on Custom Aggregate Functions for full details on developing and implementing this function.
Program Code
public class AggSumIf : ICustomAggregator
{
    double sum = 0;
  
	public void AddValue(SessionInfo sessionInfo, object value, params object[] args)
	{
        // Treat non-numbers as 0
        double input;
        if (!double.TryParse(value.ToString(), out input))
            return;
  
        bool isTrue;
        double number;
        // true, "true", and non-zero numbers are valid truthy values
        if ((bool.TryParse(args[0].ToString(), out isTrue) && isTrue) ||
            (double.TryParse(args[0].ToString(), out number) && number != 0))
            this.sum += input;
	}
  
	public object Result(SessionInfo sessionInfo)
	{
		return this.sum;
	}
}