private SchemaValidationErrorType CheckMinMax(SchemaFieldItem field, IConvertible value)
        {
            SchemaValidationErrorType result = SchemaValidationErrorType.None;

            if (field.FieldType == (int)SFIType.Number)
            {
                decimal dvalue = value.ToDecimal(CultureInfo.InvariantCulture);
                if (field.MinValue.HasValue && dvalue < field.MinValue.Value)
                {
                    result = SchemaValidationErrorType.LessThenMinNumber;
                }
                if (field.MaxValue.HasValue && dvalue > field.MaxValue.Value)
                {
                    result = SchemaValidationErrorType.GreaterThenMaxNumber;
                }
            }
            else if (field.FieldType == (int)SFIType.Date)
            {
                DateTime dtvalue = value.ToDateTime(CultureInfo.InvariantCulture);
                if (field.MinDateValue.HasValue && dtvalue < field.MinDateValue.Value)
                {
                    result = SchemaValidationErrorType.LessThenMinDate;
                }
                if (field.MaxDateValue.HasValue && dtvalue > field.MaxDateValue.Value)
                {
                    result = SchemaValidationErrorType.GreaterThenMaxDate;
                }
            }
            return(result);
        }
Esempio n. 2
0
        public void SchemaFieldItem_can_deserialize_empty()
        {
            var bytes = Encoding.Default.GetBytes(EMPTY_FIELD_ITEM_XML);

            using (var stream = new MemoryStream(bytes)) {
                SchemaFieldItem item = SchemaFieldItem.FromXml(stream);
                Assert.IsNotNull(item);
            }
        }
Esempio n. 3
0
 public void SchemaFieldItem_can_serialize_empty()
 {
     using (var stream = new MemoryStream()) {
         SchemaFieldItem item = new SchemaFieldItem();
         item.ToXml(stream);
         var bytes = stream.ToArray();
         var str   = Encoding.Default.GetString(bytes);
         Assert.AreEqual(EMPTY_FIELD_ITEM_XML, str);
     }
 }
        private SchemaValidationErrorType CheckValue(SchemaFieldItem field, object value)
        {
            SchemaValidationErrorType result = SchemaValidationErrorType.None;

            if (value == null || value == DBNull.Value)
            {
                if (field.IsNotNull)
                {
                    result = SchemaValidationErrorType.NullValueNotNullField;
                }
            }
            else
            {
                result = SchemaValidationErrorType.InvalidFieldType;
                SFIType?fieldType = TryGetFieldType(value.GetType());
                if (fieldType.HasValue && (int)fieldType.Value == field.FieldType)
                {
                    result = CheckMinMax(field, (IConvertible)value);
                }
            }
            return(result);
        }