isValid method
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;
}
}