Exemplo n.º 1
0
        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;
                }
            }
        }
Exemplo n.º 2
0
 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));
 }