isValid method

bool isValid(
  1. NsgDataItem item
)

Implementation

bool isValid(NsgDataItem item) {
  if (parameterValue is NsgCompare) {
    return (parameterValue as NsgCompare).isValid(item);
  }

  var value = item.getFieldValueByFullPath(parameterName);
  if (value == null) {
    return false;
  }
  if (comparisonOperator == NsgComparisonOperator.beginWith) {
    return (value.toString().toLowerCase().startsWith(parameterValue.toString().toLowerCase()));
  } else if (comparisonOperator == NsgComparisonOperator.contain) {
    return (value.toString().toLowerCase().contains(parameterValue.toString().toLowerCase()));
  } else if (comparisonOperator == NsgComparisonOperator.containWords) {
    var words = parameterValue.toString().split(' ');
    value = value.toString().toLowerCase();
    return words.every(((e) => value.contains(e.toLowerCase())));
  } else if (comparisonOperator == NsgComparisonOperator.endWith) {
    return (value.toString().toLowerCase().endsWith(parameterValue.toString().toLowerCase()));
  } else if (comparisonOperator == NsgComparisonOperator.equal) {
    var pv = parameterValue;
    if (parameterValue is NsgEnum) {
      pv = (parameterValue as NsgEnum).value;
    } else if (parameterValue is NsgDataItem) {
      pv = (parameterValue as NsgDataItem).id;
    }
    return (value == pv);
  } else if (comparisonOperator == NsgComparisonOperator.notEqual) {
    var pv = parameterValue;
    if (parameterValue is NsgEnum) {
      pv = (parameterValue as NsgEnum).value;
    } else if (parameterValue is NsgDataItem) {
      pv = (parameterValue as NsgDataItem).id;
    }
    return (value != pv);
  } else if (comparisonOperator == NsgComparisonOperator.inList) {
    return ((parameterValue as List).contains(value));
  } else if (comparisonOperator == NsgComparisonOperator.typeEqual) {
    return value.runtimeType == item.runtimeType;
  } else if (comparisonOperator == NsgComparisonOperator.greaterOrEqual) {
    var pv = parameterValue;
    if (value is DateTime) {
      return value.compareTo(pv) >= 0;
    }
    return (value >= pv);
  } else if (comparisonOperator == NsgComparisonOperator.lessOrEqual) {
    var pv = parameterValue;
    if (value is DateTime) {
      return value.compareTo(pv) <= 0;
    }
    return (value <= pv);
  } else if (comparisonOperator == NsgComparisonOperator.greater) {
    var pv = parameterValue;
    if (value is DateTime) {
      return value.compareTo(pv) == 1;
    }
    return (value > pv);
  } else if (comparisonOperator == NsgComparisonOperator.less) {
    var pv = parameterValue;
    if (value is DateTime) {
      return value.compareTo(pv) == -1;
    }
    return (value < pv);
  } else {
    return false;
  }
}