public void CheckRange(Field fieldInfo, string val) { if (val == null) { return; } if (!string.IsNullOrEmpty(fieldInfo.range)) { string[] rangeParts = fieldInfo.range.Split(','); switch (fieldInfo.dataType) { case DataType.Integer: case DataType.Decimal: case DataType.Float: { double dblval = double.Parse(val, CultureInfo.InvariantCulture); if (!string.IsNullOrEmpty(rangeParts[0])) { double minDbl = double.Parse(rangeParts[0], CultureInfo.InvariantCulture); if (dblval < minDbl) { throw new ValidationException(string.Format(ErrorStrings.ERR_VAL_RANGE_NOT_VALID, fieldInfo.fieldName, fieldInfo.range)); } } if (!string.IsNullOrEmpty(rangeParts[1])) { double maxDbl = double.Parse(rangeParts[1], CultureInfo.InvariantCulture); if (dblval > maxDbl) { throw new ValidationException(string.Format(ErrorStrings.ERR_VAL_RANGE_NOT_VALID, fieldInfo.fieldName, fieldInfo.range)); } } } break; case DataType.Date: case DataType.DateTime: { DateTime dtval = (DateTime)valueConverter.DeserializeValue(typeof(DateTime), DataType.DateTime, fieldInfo.dateConversion, val); if (!string.IsNullOrEmpty(rangeParts[0])) { DateTime minDt = DateTime.ParseExact(rangeParts[0], "yyyy-MM-dd", CultureInfo.InvariantCulture); if (dtval < minDt) { throw new ValidationException(string.Format(ErrorStrings.ERR_VAL_RANGE_NOT_VALID, fieldInfo.fieldName, fieldInfo.range)); } } if (!string.IsNullOrEmpty(rangeParts[1])) { DateTime maxDt = DateTime.ParseExact(rangeParts[1], "yyyy-MM-dd", CultureInfo.InvariantCulture); if (dtval > maxDt) { throw new ValidationException(string.Format(ErrorStrings.ERR_VAL_RANGE_NOT_VALID, fieldInfo.fieldName, fieldInfo.range)); } } } break; default: return; } } }
public object ParseParameter(Type paramType, ParamMetadata pinfo, bool isArray, string val) { return((isArray && val != null) ? ParseArray(paramType, pinfo, val) : _valueConverter.DeserializeValue(paramType, pinfo.dataType, pinfo.dateConversion, val)); }