Example #1
0
 private FdoRow ConvertValues(FdoRow row)
 {
     foreach (string propertyName in _rules.Keys)
     {
         if (row[propertyName] != null)
         {
             FdoDataPropertyConversionRule rule = _rules[propertyName];
             LiteralValue old = ValueConverter.GetConvertedValue(row[propertyName]);
             if (old.LiteralValueType == LiteralValueType.LiteralValueType_Data)
             {
                 DataValue converted = ValueConverter.ConvertDataValue((DataValue)old, rule.TargetDataType, rule.NullOnFailure, rule.Truncate);
                 row[propertyName] = ValueConverter.GetClrValue(converted);
                 if (converted != null)
                 {
                     converted.Dispose();
                 }
                 else
                 {
                     if (!rule.NullOnFailure)
                     {
                         throw new FdoException("Converting " + old + " to " + rule.TargetDataType + " resulted in a NULL value");
                     }
                 }
                 old.Dispose();
             }
         }
     }
     return(row);
 }
Example #2
0
        private FdoRow ConvertValues(FdoRow row)
        {
            foreach (string propertyName in _rules.Keys)
            {
                if (row[propertyName] != null)
                {
                    FdoDataPropertyConversionRule rule = _rules[propertyName];
                    LiteralValue old = ValueConverter.GetConvertedValue(row[propertyName]);
                    if (old.LiteralValueType == LiteralValueType.LiteralValueType_Data)
                    {
                        DataValue converted = ValueConverter.ConvertDataValue((DataValue)old, rule.TargetDataType, rule.NullOnFailure, rule.Truncate);
                        row[propertyName] = ValueConverter.GetClrValue(converted);

                        converted.Dispose();
                        old.Dispose();
                    }
                }
            }
            return(row);
        }
        public void TestBooleanConversion()
        {
            BooleanValue b  = new BooleanValue(true);
            DataValue    dv = null;

            //To BLOB
            dv = ValueConverter.ConvertDataValue(b, DataType.DataType_BLOB, true, true);
            Assert.IsNull(dv);

            //To Boolean
            dv = ValueConverter.ConvertDataValue(b, DataType.DataType_Boolean, true, true);
            Assert.IsNotNull(dv);
            Assert.AreEqual(dv.DataType, DataType.DataType_Boolean);
            Assert.AreEqual(dv, b);

            dv = null;
            //To Byte
            dv = ValueConverter.ConvertDataValue(b, DataType.DataType_Byte, true, true);
            Assert.IsNotNull(dv);
            Assert.AreEqual(dv.DataType, DataType.DataType_Byte);

            //To CLOB
            dv = ValueConverter.ConvertDataValue(b, DataType.DataType_CLOB, true, true);
            Assert.IsNull(dv);

            //To DateTime
            dv = ValueConverter.ConvertDataValue(b, DataType.DataType_DateTime, true, true);
            Assert.IsNull(dv);

            //To Decimal
            dv = ValueConverter.ConvertDataValue(b, DataType.DataType_Decimal, true, true);
            Assert.IsNull(dv);

            //To Double
            dv = ValueConverter.ConvertDataValue(b, DataType.DataType_Double, true, true);
            Assert.IsNull(dv);

            dv = null;
            //To String
            dv = ValueConverter.ConvertDataValue(b, DataType.DataType_String, true, true);
            Assert.IsNotNull(dv);
            Assert.AreEqual(dv.DataType, DataType.DataType_String);

            dv = null;
            //To Int16
            dv = ValueConverter.ConvertDataValue(b, DataType.DataType_Int16, true, true);
            Assert.IsNotNull(dv);
            Assert.AreEqual(dv.DataType, DataType.DataType_Int16);

            dv = null;
            //To Int32
            dv = ValueConverter.ConvertDataValue(b, DataType.DataType_Int32, true, true);
            Assert.IsNotNull(dv);
            Assert.AreEqual(dv.DataType, DataType.DataType_Int32);

            dv = null;
            //To Int64
            dv = ValueConverter.ConvertDataValue(b, DataType.DataType_Int64, true, true);
            Assert.IsNotNull(dv);
            Assert.AreEqual(dv.DataType, DataType.DataType_Int64);
        }