Esempio n. 1
0
 public override int GetHashCode()
 {
     unchecked
     {
         return((Int16Value.GetHashCode() * 397) ^ (Value != null ? Value.GetHashCode() : 0));
     }
 }
Esempio n. 2
0
        public void TestCase_Int16Value()
        {
            short d = 1;

            var value = new Int16Value();

            Assert.AreEqual(PropertyDefinitionType.Data, value.PropertyDefType);
            Assert.AreEqual(PropertyValueType.Int16, value.Type);
            Assert.True(value.IsNull);
            Assert.Throws <Exception>(() => { var v = value.Value; });
            Assert.Throws <Exception>(() => { var v = value.ValueAsString(); });
            value.Value = d;
            Assert.NotNull(value.Value);
            Assert.AreEqual(d, value.Value);
            Assert.AreEqual("1", value.ValueAsString());
            Assert.False(value.IsNull);

            value = new Int16Value(d);
            Assert.False(value.IsNull);
            Assert.NotNull(value.Value);
            Assert.AreEqual(d, value.Value);

            value.SetNull();
            Assert.True(value.IsNull);
            Assert.Throws <Exception>(() => { var v = value.Value; });
        }
Esempio n. 3
0
        private static DataValue ConvertInt16(Int16Value int16Value, DataType dataType, bool truncate)
        {
            switch (dataType)
            {
            case DataType.DataType_String:
                return(new StringValue(int16Value.Int16.ToString()));

            case DataType.DataType_Single:
                return(new SingleValue(Convert.ToSingle(int16Value.Int16)));

            case DataType.DataType_Double:
                return(new DoubleValue(Convert.ToDouble(int16Value.Int16)));

            case DataType.DataType_Decimal:
                return(new DecimalValue(Convert.ToDouble(int16Value.Int16)));

            case DataType.DataType_Int32:
                return(new Int32Value(Convert.ToInt32(int16Value.Int16)));

            case DataType.DataType_Int64:
                return(new Int64Value(Convert.ToInt64(int16Value.Int16)));

            default:
                return(null);
            }
        }
        public void Converter_ChangeTypeWithType_With_TypeValues()
        {
            var typedDateTime = DateTimeValue.ChangeTypeWithType(typeof(DateTime), CultureInfo.InvariantCulture);

            Assert.AreEqual(DateTimeValue, typedDateTime);

            var typedDecimal = DecimalValue.ChangeTypeWithType(typeof(Decimal), CultureInfo.InvariantCulture);

            Assert.AreEqual(DecimalValue, typedDecimal);

            var typedString = StringValue.ChangeTypeWithType(typeof(String), CultureInfo.InvariantCulture);

            Assert.AreEqual(StringValue, typedString);

            var typedGuid = GuidValue.ChangeTypeWithType(typeof(Guid), CultureInfo.InvariantCulture);

            Assert.AreEqual(GuidValue, typedGuid);

            var typedInt16 = Int16Value.ChangeTypeWithType(typeof(Int16), CultureInfo.InvariantCulture);

            Assert.AreEqual(Int16Value, typedInt16);

            var typedInt32 = Int32Value.ChangeTypeWithType(typeof(Int32), CultureInfo.InvariantCulture);

            Assert.AreEqual(Int32Value, typedInt32);

            var typedInt64 = Int64Value.ChangeTypeWithType(typeof(Int64), CultureInfo.InvariantCulture);

            Assert.AreEqual(Int64Value, typedInt64);

            var typedBool = BoolValue.ChangeTypeWithType(typeof(bool), CultureInfo.InvariantCulture);

            Assert.AreEqual(BoolValue, typedBool);
        }
Esempio n. 5
0
 public override int GetHashCode()
 {
     unchecked
     {
         int hashCode = Int16Value.GetHashCode();
         hashCode = (hashCode * 397) ^ Int32Value;
         hashCode = (hashCode * 397) ^ Int64Value.GetHashCode();
         return(hashCode);
     }
 }
Esempio n. 6
0
        public void Bug520719()
        {
            // the following test should pass without Assert() in debug version.

            var int8 = new SByteValue();

            int8.InnerText = "+10";
            Assert.Equal(10, int8.Value);
            Assert.Equal("+10", int8.InnerText);

            var int16 = new Int16Value();

            int16.InnerText = "+10";
            Assert.Equal(10, int16.Value);
            Assert.Equal("+10", int16.InnerText);

            var int32 = new Int32Value();

            int32.InnerText = "+10";
            Assert.Equal(10, int32.Value);
            Assert.Equal("+10", int32.InnerText);

            var int64 = new Int64Value();

            int64.InnerText = "+10";
            Assert.Equal(10, int64.Value);
            Assert.Equal("+10", int64.InnerText);

            var integer = new IntegerValue();

            integer.InnerText = "+10";
            Assert.Equal(10, integer.Value);
            Assert.Equal("+10", integer.InnerText);

            var dec = new DecimalValue();

            dec.InnerText = "+10";
            Assert.Equal(10, dec.Value);
            Assert.Equal("+10", dec.InnerText);

            var single = new SingleValue();

            single.InnerText = "+10";
            Assert.Equal(10, single.Value);
            Assert.Equal("+10", single.InnerText);

            var dble = new DoubleValue();

            dble.InnerText = "+10";
            Assert.Equal(10, dble.Value);
            Assert.Equal("+10", dble.InnerText);
        }
Esempio n. 7
0
        static Constants()
        {
            BoolValue          = true;
            DateTimeValue      = DateTime.Parse(DateTime.MaxValue.ToString(), CultureInfo.InvariantCulture);
            DecimalValue       = Decimal.MaxValue;
            GuidValue          = Guid.NewGuid();
            Int16Value         = Int16.MaxValue;
            Int32Value         = Int32.MaxValue;
            Int64Value         = Int64.MaxValue;
            StringValue        = Guid.NewGuid().ToString();
            NullableInt64Value = Int64.MaxValue;

            BoolStringValue          = BoolValue.ToString();
            DateTimeStringValue      = DateTimeValue.ToString();
            DecimalStringValue       = DecimalValue.ToString();
            GuidStringValue          = GuidValue.ToString();
            Int16StringValue         = Int16Value.ToString();
            Int32StringValue         = Int32Value.ToString();
            Int64StringValue         = Int64Value.ToString();
            NullableInt64StringValue = NullableInt64Value.ToString();
        }
        public LocalNativeRecord(MgReader reader, FixedWKTReader mgReader, MgAgfReaderWriter agfRw, MgWktReaderWriter wktRw)
        {
            for (int i = 0; i < reader.GetPropertyCount(); i++)
            {
                string name = reader.GetPropertyName(i);

                _ordinalMap[i] = name;

                var pt = (PropertyValueType)reader.GetPropertyType(name);
                switch (pt)
                {
                    case PropertyValueType.Blob:
                        _values[name] = new BlobValue();
                        break;

                    case PropertyValueType.Boolean:
                        _values[name] = new BooleanValue();
                        break;

                    case PropertyValueType.Byte:
                        _values[name] = new ByteValue();
                        break;

                    case PropertyValueType.Clob:
                        _values[name] = new ClobValue();
                        break;

                    case PropertyValueType.DateTime:
                        _values[name] = new DateTimeValue();
                        break;

                    case PropertyValueType.Double:
                        _values[name] = new DoubleValue();
                        break;

                    case PropertyValueType.Feature:
                        _values[name] = new FeatureValue();
                        break;

                    case PropertyValueType.Geometry:
                        _values[name] = new GeometryValue();
                        break;

                    case PropertyValueType.Int16:
                        _values[name] = new Int16Value();
                        break;

                    case PropertyValueType.Int32:
                        _values[name] = new Int32Value();
                        break;

                    case PropertyValueType.Int64:
                        _values[name] = new Int64Value();
                        break;

                    case PropertyValueType.Raster:
                        _values[name] = new RasterValue();
                        break;

                    case PropertyValueType.Single:
                        _values[name] = new SingleValue();
                        break;

                    case PropertyValueType.String:
                        _values[name] = new StringValue();
                        break;
                }
            }

            for (int i = 0; i < reader.GetPropertyCount(); i++)
            {
                string name = _ordinalMap[i];
                GetByteReaderMethod getblob = () => { return reader.GetBLOB(name); };
                GetByteReaderMethod getclob = () => { return reader.GetCLOB(name); };
                GetByteReaderMethod getgeom = () => { return reader.GetGeometry(name); };
                if (!reader.IsNull(name))
                {
                    var pt = (PropertyValueType)reader.GetPropertyType(name);
                    switch (pt)
                    {
                        case PropertyValueType.Blob:
                            ((BlobValue)_values[name]).Value = Utility.StreamAsArray(new MgReadOnlyStream(getblob));
                            break;

                        case PropertyValueType.Boolean:
                            ((BooleanValue)_values[name]).Value = reader.GetBoolean(name);
                            break;

                        case PropertyValueType.Byte:
                            ((ByteValue)_values[name]).Value = reader.GetByte(name);
                            break;

                        case PropertyValueType.Clob:
                            byte[] b = Utility.StreamAsArray(new MgReadOnlyStream(getclob));
                            ((ClobValue)_values[name]).Value = Encoding.UTF8.GetChars(b);
                            break;

                        case PropertyValueType.DateTime:
                            ((DateTimeValue)_values[name]).Value = Utility.ConvertMgDateTime(reader.GetDateTime(name));
                            break;

                        case PropertyValueType.Double:
                            ((DoubleValue)_values[name]).Value = reader.GetDouble(name);
                            break;
                        //case PropertyValueType.Feature:
                        case PropertyValueType.Geometry:
                            try
                            {
                                //TODO: See if SWIG issues come into play here
                                var geom = agfRw.Read(reader.GetGeometry(name));
                                var wkt = wktRw.Write(geom);
                                ((GeometryValue)_values[name]).Value = mgReader.Read(wkt);
                            }
                            catch //Invalid geometry fail!
                            {
                                ((GeometryValue)_values[name]).SetNull();
                            }
                            break;

                        case PropertyValueType.Int16:
                            ((Int16Value)_values[name]).Value = reader.GetInt16(name);
                            break;

                        case PropertyValueType.Int32:
                            ((Int32Value)_values[name]).Value = reader.GetInt32(name);
                            break;

                        case PropertyValueType.Int64:
                            ((Int64Value)_values[name]).Value = reader.GetInt64(name);
                            break;

                        case PropertyValueType.Single:
                            ((SingleValue)_values[name]).Value = reader.GetSingle(name);
                            break;

                        case PropertyValueType.String:
                            ((StringValue)_values[name]).Value = reader.GetString(name);
                            break;
                    }
                }
            }
        }
Esempio n. 9
0
        public XmlRecord(XmlProperty[] properties, FixedWKTReader wktReader, XmlNodeList propertyNodes, string nameElement, string valueElement)
        {
            for (int i = 0; i < properties.Length; i++)
            {
                string name = properties[i].Name;
                _ordinalMap[i] = name;

                switch (properties[i].Type)
                {
                case PropertyValueType.Blob:
                    _values[name] = new BlobValue();
                    break;

                case PropertyValueType.Boolean:
                    _values[name] = new BooleanValue();
                    break;

                case PropertyValueType.Byte:
                    _values[name] = new ByteValue();
                    break;

                case PropertyValueType.Clob:
                    _values[name] = new ClobValue();
                    break;

                case PropertyValueType.DateTime:
                    _values[name] = new DateTimeValue();
                    break;

                case PropertyValueType.Double:
                    _values[name] = new DoubleValue();
                    break;

                case PropertyValueType.Feature:
                    _values[name] = new FeatureValue();
                    break;

                case PropertyValueType.Geometry:
                    _values[name] = new GeometryValue();
                    break;

                case PropertyValueType.Int16:
                    _values[name] = new Int16Value();
                    break;

                case PropertyValueType.Int32:
                    _values[name] = new Int32Value();
                    break;

                case PropertyValueType.Int64:
                    _values[name] = new Int64Value();
                    break;

                case PropertyValueType.Raster:
                    _values[name] = new RasterValue();
                    break;

                case PropertyValueType.Single:
                    _values[name] = new SingleValue();
                    break;

                case PropertyValueType.String:
                    _values[name] = new StringValue();
                    break;
                }
            }

            foreach (XmlNode propNode in propertyNodes)
            {
                var name      = propNode[nameElement].InnerText;
                var valueNode = propNode[valueElement];
                if (valueNode != null)
                {
                    var value = valueNode.InnerText;
                    switch (_values[name].Type)
                    {
                    case PropertyValueType.Blob:
                        ((BlobValue)_values[name]).Value = Encoding.UTF8.GetBytes(value);
                        break;

                    case PropertyValueType.Boolean:
                        ((BooleanValue)_values[name]).Value = XmlConvert.ToBoolean(value);
                        break;

                    case PropertyValueType.Byte:
                        ((ByteValue)_values[name]).Value = XmlConvert.ToByte(value);
                        break;

                    case PropertyValueType.Clob:
                        ((ClobValue)_values[name]).Value = value.ToCharArray();
                        break;

                    case PropertyValueType.DateTime:
                        var dt = ConvertToDateTime(value);
                        if (dt.HasValue)
                        {
                            ((DateTimeValue)_values[name]).Value = dt.Value;
                        }
                        break;

                    case PropertyValueType.Double:
                        ((DoubleValue)_values[name]).Value = XmlConvert.ToDouble(value);
                        break;

                    case PropertyValueType.Feature:
                        ((FeatureValue)_values[name]).Value = ConvertToFeatures(value);
                        break;

                    case PropertyValueType.Geometry:
                        ((GeometryValue)_values[name]).Value = wktReader.Read(value);
                        break;

                    case PropertyValueType.Int16:
                        ((Int16Value)_values[name]).Value = XmlConvert.ToInt16(value);
                        break;

                    case PropertyValueType.Int32:
                        ((Int32Value)_values[name]).Value = XmlConvert.ToInt32(value);
                        break;

                    case PropertyValueType.Int64:
                        ((Int64Value)_values[name]).Value = XmlConvert.ToInt64(value);
                        break;

                    case PropertyValueType.Raster:
                        ((RasterValue)_values[name]).Value = ConvertToRaster(value);
                        break;

                    case PropertyValueType.Single:
                        ((SingleValue)_values[name]).Value = XmlConvert.ToSingle(value);
                        break;

                    case PropertyValueType.String:
                        ((StringValue)_values[name]).Value = value;
                        break;
                    }
                }
            }
        }
Esempio n. 10
0
        public void TestAssertInInnerTextForPlusSymbol()
        {
            // same issue for SByteValue, Int16Value, IntegerValue, DecimalValue, SingleValue, DoubleValue
            {
                var v = new SByteValue();
                v.InnerText = "+100";
                sbyte  v2 = v.Value;
                string t  = v.InnerText;

                // Verify value and text
                Log.VerifyValue(v2, (sbyte)100, "{0}.Value", v.GetType().Name);
                Log.VerifyValue(t, "+100", "{0}.InnerText", v.GetType().Name);
            }

            {
                var v = new Int16Value();
                v.InnerText = "+100";
                short  v2 = v.Value;
                string t  = v.InnerText;

                // Verify value and text
                Log.VerifyValue(v2, (short)100, "{0}.Value", v.GetType().Name);
                Log.VerifyValue(t, "+100", "{0}.InnerText", v.GetType().Name);
            }

            {
                var v = new Int32Value();
                v.InnerText = "+100";
                int    v2 = v.Value;
                string t  = v.InnerText;

                // Verify value and text
                Log.VerifyValue(v2, 100, "{0}.Value", v.GetType().Name);
                Log.VerifyValue(t, "+100", "{0}.InnerText", v.GetType().Name);
            }

            {
                var v = new IntegerValue();
                v.InnerText = "+100";
                long   v2 = v.Value;
                string t  = v.InnerText;

                // Verify value and text
                Log.VerifyValue(v2, 100L, "{0}.Value", v.GetType().Name);
                Log.VerifyValue(t, "+100", "{0}.InnerText", v.GetType().Name);
            }

            {
                var v = new DecimalValue();
                v.InnerText = "+100";
                decimal v2 = v.Value;
                string  t  = v.InnerText;

                // Verify value and text
                Log.VerifyValue(v2, 100M, "{0}.Value", v.GetType().Name);
                Log.VerifyValue(t, "+100", "{0}.InnerText", v.GetType().Name);
            }

            {
                var v = new SingleValue();
                v.InnerText = "+100";
                float  v2 = v.Value;
                string t  = v.InnerText;

                // Verify value and text
                Log.VerifyValue(v2, 100F, "{0}.Value", v.GetType().Name);
                Log.VerifyValue(t, "+100", "{0}.InnerText", v.GetType().Name);
            }

            {
                var v = new DoubleValue();
                v.InnerText = "+100";
                double v2 = v.Value;
                string t  = v.InnerText;

                // Verify value and text
                Log.VerifyValue(v2, 100D, "{0}.Value", v.GetType().Name);
                Log.VerifyValue(t, "+100", "{0}.InnerText", v.GetType().Name);
            }
        }
 public GenerateColumns(Int16Value columnCount)
 {
     this.columnCount = columnCount ?? throw new ArgumentNullException(nameof(columnCount));
 }
 public GenerateColumns(OnOffValue equalWidth, Int16Value columnCount)
 {
     this.equalWidth  = equalWidth ?? throw new ArgumentNullException(nameof(equalWidth));
     this.columnCount = columnCount ?? throw new ArgumentNullException(nameof(columnCount));
 }
        public void TestAssertInInnerTextForPlusSymbol()
        {
            this.MyTestInitialize(TestContext.GetCurrentMethod());

            // same issue for SByteValue, Int16Value, IntegerValue, DecimalValue, SingleValue, DoubleValue
            {
                var v = new SByteValue();
                v.InnerText = "+100";
                sbyte  v2 = v.Value;
                string t  = v.InnerText;

                // Verify value and text
                Log.VerifyValue(v2, (sbyte)100, "{0}.Value", v.GetType().Name);
                Log.VerifyValue(t, "+100", "{0}.InnerText", v.GetType().Name);
            }

            {
                var v = new Int16Value();
                v.InnerText = "+100";
                Int16  v2 = v.Value;
                string t  = v.InnerText;

                // Verify value and text
                Log.VerifyValue(v2, (Int16)100, "{0}.Value", v.GetType().Name);
                Log.VerifyValue(t, "+100", "{0}.InnerText", v.GetType().Name);
            }

            {
                var v = new Int32Value();
                v.InnerText = "+100";
                int    v2 = v.Value;
                string t  = v.InnerText;

                // Verify value and text
                Log.VerifyValue(v2, (int)100, "{0}.Value", v.GetType().Name);
                Log.VerifyValue(t, "+100", "{0}.InnerText", v.GetType().Name);
            }

            {
                var v = new IntegerValue();
                v.InnerText = "+100";
                long   v2 = v.Value;
                string t  = v.InnerText;

                // Verify value and text
                Log.VerifyValue(v2, (long)100, "{0}.Value", v.GetType().Name);
                Log.VerifyValue(t, "+100", "{0}.InnerText", v.GetType().Name);
            }

            {
                var v = new DecimalValue();
                v.InnerText = "+100";
                decimal v2 = v.Value;
                string  t  = v.InnerText;

                // Verify value and text
                Log.VerifyValue(v2, (decimal)100, "{0}.Value", v.GetType().Name);
                Log.VerifyValue(t, "+100", "{0}.InnerText", v.GetType().Name);
            }

            {
                var v = new SingleValue();
                v.InnerText = "+100";
                float  v2 = v.Value;
                string t  = v.InnerText;

                // Verify value and text
                Log.VerifyValue(v2, (float)100, "{0}.Value", v.GetType().Name);
                Log.VerifyValue(t, "+100", "{0}.InnerText", v.GetType().Name);
            }

            {
                var v = new DoubleValue();
                v.InnerText = "+100";
                double v2 = v.Value;
                string t  = v.InnerText;

                // Verify value and text
                Log.VerifyValue(v2, (double)100, "{0}.Value", v.GetType().Name);
                Log.VerifyValue(t, "+100", "{0}.InnerText", v.GetType().Name);
            }
        }
Esempio n. 14
0
 public static string GetInt16SqlValue()
 {
     return($"{Int16Value.ToString(CultureInfo.InvariantCulture)}");
 }
Esempio n. 15
0
        private void Prepare(PropertyValueCollection propVals)
        {
            propVals.Clear();
            currentValues.Clear();

            // I do not trust the long-term stability of the PropertyValueCollection
            //
            // So what we do is load it up once with LiteralValue references and manipulate these
            // outside of the collection (via a cached dictionary). We cache everything from the wrapper API 
            // that can be cached in the managed world so that we only have minimal contact with it

            // Omit read-only properties
            using (FdoFeatureService service = _conn.CreateFeatureService())
            {
                ClassDefinition c = service.GetClassByName(this.ClassName);
                foreach (PropertyDefinition p in c.Properties)
                {
                    string name = p.Name;
                    PropertyValue pv = new PropertyValue(name, null);
                    if (p.PropertyType == PropertyType.PropertyType_DataProperty)
                    {
                        DataPropertyDefinition d = p as DataPropertyDefinition;
                        if (!d.ReadOnly && !d.IsAutoGenerated) 
                        {
                            DataValue dv = null;
                            switch (d.DataType)
                            {
                                case DataType.DataType_BLOB:
                                    dv = new BLOBValue();
                                    break;
                                case DataType.DataType_Boolean:
                                    dv = new BooleanValue();
                                    break;
                                case DataType.DataType_Byte:
                                    dv = new ByteValue();
                                    break;
                                case DataType.DataType_CLOB:
                                    dv = new CLOBValue();
                                    break;
                                case DataType.DataType_DateTime:
                                    dv = new DateTimeValue();
                                    break;
                                case DataType.DataType_Decimal:
                                    dv = new DecimalValue();
                                    break;
                                case DataType.DataType_Double:
                                    dv = new DoubleValue();
                                    break;
                                case DataType.DataType_Int16:
                                    dv = new Int16Value();
                                    break;
                                case DataType.DataType_Int32:
                                    dv = new Int32Value();
                                    break;
                                case DataType.DataType_Int64:
                                    dv = new Int64Value();
                                    break;
                                case DataType.DataType_Single:
                                    dv = new SingleValue();
                                    break;
                                case DataType.DataType_String:
                                    dv = new StringValue();
                                    break;
                            }
                            if (dv != null)
                            {
                                pv.Value = dv;
                                propVals.Add(pv);
                            }
                        }
                    }
                    else if (p.PropertyType == PropertyType.PropertyType_GeometricProperty)
                    {
                        GeometricPropertyDefinition g = p as GeometricPropertyDefinition;
                        if (!g.ReadOnly)
                        {
                            GeometryValue gv = new GeometryValue();
                            pv.Value = gv;
                            propVals.Add(pv);
                        }
                    }
                }
                c.Dispose();
            }

            //Load property values into temp dictionary
            foreach (PropertyValue p in propVals)
            {
                currentValues[p.Name.Name] = p.Value as LiteralValue;
            }

            if (propertySnapshot == null)
            {
                propertySnapshot = new List<string>();
                foreach (PropertyValue p in propVals)
                {
                    propertySnapshot.Add(p.Name.Name);
                }
            }
        }
Esempio n. 16
0
 public Int16ValueTests()
 {
     SmallValue1 = new Int16Value((short)10);
     SmallValue2 = new Int16Value((short)10);
     LargeValue  = new Int16Value((short)20);
 }
Esempio n. 17
0
        public static Expression ParseByDataType(string data, DataType dataType)
        {
            Expression expr    = null;
            bool       bIsNull = false;

            // NOTE: blob parsing doesn't work yet (ever?) in FDO:
            if (dataType != DataType.DataType_BLOB)
            {
                expr = Expression.Parse(data);

                if (expr is BooleanValue)
                {
                    bIsNull = true;
                }
                else
                {
                    bIsNull = false;
                }
            }

            switch (dataType)
            {
            case DataType.DataType_Boolean:
            {
                if (bIsNull)
                {
                    BooleanValue val = new BooleanValue();
                    val.SetNull();
                    expr = val;
                }
                else
                {
                    BooleanValue value = (BooleanValue)(expr);
                    if (value == null)
                    {
                        Debug.Fail("Wrong data type!");
                    }
                }
            }
            break;

            case DataType.DataType_Byte:
            {
                if (bIsNull)
                {
                    ByteValue val = new ByteValue();
                    val.SetNull();
                    expr = val;
                }
                else
                {
                    Int32Value value = (Int32Value)(expr);
                    if (value == null)
                    {
                        Debug.Fail("Wrong data type!");
                    }
                    expr = new ByteValue((byte)value.Int32);
                }
            }
            break;

            case DataType.DataType_Int16:
            {
                if (bIsNull)
                {
                    Int16Value val = new Int16Value();
                    val.SetNull();
                    expr = val;
                }
                else
                {
                    Int32Value value = (Int32Value)(expr);
                    if (value == null)
                    {
                        Debug.Fail("Wrong data type!");
                    }
                    expr = new Int16Value((Int16)value.Int32);
                }
            }
            break;

            case DataType.DataType_Int32:
            {
                if (bIsNull)
                {
                    Int32Value val = new Int32Value();
                    val.SetNull();
                    expr = val;
                }
                else
                {
                    Int32Value value = (Int32Value)(expr);
                    if (value == null)
                    {
                        Debug.Fail("Wrong data type!");
                    }
                }
            }
            break;

            case DataType.DataType_Int64:
            {
                if (bIsNull)
                {
                    Int64Value val = new Int64Value();
                    val.SetNull();
                    expr = val;
                }
                else
                {
                    Int64Value value = (Int64Value)(expr);
                    if (value == null)
                    {
                        Debug.Fail("Wrong data type!");
                    }
                    expr = new Int64Value((Int64)value.Int64);
                }
            }
            break;

            case DataType.DataType_Single:
            {
                if (bIsNull)
                {
                    SingleValue val = new SingleValue();
                    val.SetNull();
                    expr = val;
                }
                else
                {
                    DoubleValue value = (DoubleValue)(expr);
                    if (value == null)
                    {
                        Debug.Fail("Wrong data type!");
                    }
                    expr = new SingleValue((float)value.Double);
                }
            }
            break;

            case DataType.DataType_Double:
            {
                if (bIsNull)
                {
                    DoubleValue val = new DoubleValue();
                    val.SetNull();
                    expr = val;
                }
                else
                {
                    DoubleValue value = (DoubleValue)(expr);
                    if (value == null)
                    {
                        Debug.Fail("Wrong data type!");
                    }
                }
            }
            break;

            case DataType.DataType_DateTime:
            {
                if (bIsNull)
                {
                    DateTimeValue val = new DateTimeValue();
                    val.SetNull();
                    expr = val;
                }
                else
                {
                    DateTimeValue value = (DateTimeValue)expr;
                    if (value == null)
                    {
                        Debug.Fail("Wrong data type!");
                    }
                }
            }
            break;

            case DataType.DataType_Decimal:
            {
                if (bIsNull)
                {
                    DecimalValue val = new DecimalValue();
                    val.SetNull();
                    expr = val;
                }
                else
                {
                    DoubleValue valueDouble = (DoubleValue)expr;
                    if (valueDouble != null)
                    {
                        expr = new DecimalValue((double)valueDouble.Double);
                    }
                    else
                    {
                        Int32Value valueInt32 = (Int32Value)expr;
                        if (valueInt32 != null)
                        {
                            expr = new DecimalValue((double)valueInt32.Int32);
                        }
                        else
                        {
                            Debug.Fail("Wrong data type!");
                        }
                    }
                }
            }
            break;

            case DataType.DataType_String:
            {
                if (bIsNull)
                {
                    StringValue val = new StringValue();
                    val.SetNull();
                    expr = val;
                }
                else
                {
                    StringValue value = (StringValue)expr;
                    if (value == null)
                    {
                        Debug.Fail("Wrong data type!");
                    }
                }
            }
            break;

            default:
                Debug.Fail("Unhandled data type!");
                break;
            }

            return(expr);
        }
Esempio n. 18
0
 private static DataValue ConvertInt16(Int16Value int16Value, DataType dataType, bool truncate)
 {
     switch (dataType)
     {
         case DataType.DataType_String:
             return new StringValue(int16Value.Int16.ToString());
         case DataType.DataType_Single:
             return new SingleValue(Convert.ToSingle(int16Value.Int16));
         case DataType.DataType_Double:
             return new DoubleValue(Convert.ToDouble(int16Value.Int16));
         case DataType.DataType_Decimal:
             return new DecimalValue(Convert.ToDouble(int16Value.Int16));
         case DataType.DataType_Int32:
             return new Int32Value(Convert.ToInt32(int16Value.Int16));
         case DataType.DataType_Int64:
             return new Int64Value(Convert.ToInt64(int16Value.Int16));
         default:
             return null;
     }
 }
Esempio n. 19
0
        public Dictionary <string, ValueExpression> GetValues()
        {
            Dictionary <string, ValueExpression> values = new Dictionary <string, ValueExpression>();

            foreach (int idx in _modifiedRowIndices)
            {
                DataGridViewRow    row     = grdProperties.Rows[idx];
                string             name    = row.Cells[0].Value.ToString();
                PropertyDefinition propDef = row.Cells[0].Tag as PropertyDefinition;
                if (row.Cells[1].Value != null)
                {
                    string str = row.Cells[1].Value.ToString();
                    if (!string.IsNullOrEmpty(str))
                    {
                        ValueExpression expr = null;
                        if (propDef.PropertyType == PropertyType.PropertyType_DataProperty)
                        {
                            DataPropertyDefinition dp = propDef as DataPropertyDefinition;
                            switch (dp.DataType)
                            {
                            case DataType.DataType_Boolean:
                                expr = new BooleanValue(Convert.ToBoolean(str));
                                break;

                            case DataType.DataType_Byte:
                                expr = new ByteValue(Convert.ToByte(str));
                                break;

                            case DataType.DataType_DateTime:
                                expr = new DateTimeValue(Convert.ToDateTime(str));
                                break;

                            case DataType.DataType_Decimal:
                                expr = new DecimalValue(Convert.ToDouble(str));
                                break;

                            case DataType.DataType_Double:
                                expr = new DoubleValue(Convert.ToDouble(str));
                                break;

                            case DataType.DataType_Int16:
                                expr = new Int16Value(Convert.ToInt16(str));
                                break;

                            case DataType.DataType_Int32:
                                expr = new Int32Value(Convert.ToInt32(str));
                                break;

                            case DataType.DataType_Int64:
                                expr = new Int64Value(Convert.ToInt64(str));
                                break;

                            case DataType.DataType_Single:
                                expr = new SingleValue(Convert.ToSingle(str));
                                break;

                            case DataType.DataType_String:
                                expr = new StringValue(str);
                                break;

                            default:
                                throw new NotSupportedException("Unsupported data type: " + dp.DataType);
                            }
                        }
                        else if (propDef.PropertyType == PropertyType.PropertyType_GeometricProperty)
                        {
                            FdoGeometryFactory           fact = FdoGeometryFactory.Instance;
                            OSGeo.FDO.Geometry.IGeometry geom = fact.CreateGeometry(str);
                            byte[] fgf = fact.GetFgf(geom);
                            expr = new GeometryValue(fgf);
                            geom.Dispose();
                        }
                        else if (propDef.PropertyType == PropertyType.PropertyType_AssociationProperty)
                        {
                            // TODO: don't assume all values are strings! Use schema.
                            expr = new StringValue(str);
                        }
                        else if (propDef.PropertyType == PropertyType.PropertyType_ObjectProperty)
                        {
                            // TODO: don't assume all values are strings! Use schema.
                            expr = new StringValue(str);
                        }

                        if (expr != null)
                        {
                            values.Add(name, expr);
                        }
                    }
                }
            }
            return(values);
        }
 public GenerateTableCellRightMargin()
 {
     this.width = 108;
     this.type  = TableWidthValues.Dxa;
 }
Esempio n. 21
0
 internal Property_Shape_CenterY(PropertyRoot owner) : base(owner)
 {
     Value = new Int16Value(this);
 }
Esempio n. 22
0
        public LocalNativeRecord(MgReader reader, FixedWKTReader mgReader, MgAgfReaderWriter agfRw, MgWktReaderWriter wktRw)
        {
            for (int i = 0; i < reader.GetPropertyCount(); i++)
            {
                string name = reader.GetPropertyName(i);

                _ordinalMap[i] = name;

                var pt = (PropertyValueType)reader.GetPropertyType(name);
                switch (pt)
                {
                    case PropertyValueType.Blob:
                        _values[name] = new BlobValue();
                        break;
                    case PropertyValueType.Boolean:
                        _values[name] = new BooleanValue();
                        break;
                    case PropertyValueType.Byte:
                        _values[name] = new ByteValue();
                        break;
                    case PropertyValueType.Clob:
                        _values[name] = new ClobValue();
                        break;
                    case PropertyValueType.DateTime:
                        _values[name] = new DateTimeValue();
                        break;
                    case PropertyValueType.Double:
                        _values[name] = new DoubleValue();
                        break;
                    case PropertyValueType.Feature:
                        _values[name] = new FeatureValue();
                        break;
                    case PropertyValueType.Geometry:
                        _values[name] = new GeometryValue();
                        break;
                    case PropertyValueType.Int16:
                        _values[name] = new Int16Value();
                        break;
                    case PropertyValueType.Int32:
                        _values[name] = new Int32Value();
                        break;
                    case PropertyValueType.Int64:
                        _values[name] = new Int64Value();
                        break;
                    case PropertyValueType.Raster:
                        _values[name] = new RasterValue();
                        break;
                    case PropertyValueType.Single:
                        _values[name] = new SingleValue();
                        break;
                    case PropertyValueType.String:
                        _values[name] = new StringValue();
                        break;
                }
            }

            for (int i = 0; i < reader.GetPropertyCount(); i++)
            {
                string name = _ordinalMap[i];
                GetByteReaderMethod getblob = () => { return reader.GetBLOB(name); };
                GetByteReaderMethod getclob = () => { return reader.GetCLOB(name); };
                GetByteReaderMethod getgeom = () => { return reader.GetGeometry(name); };
                if (!reader.IsNull(name))
                {
                    var pt = (PropertyValueType)reader.GetPropertyType(name);
                    switch (pt)
                    {
                        case PropertyValueType.Blob:
                            ((BlobValue)_values[name]).Value = Utility.StreamAsArray(new MgReadOnlyStream(getblob));
                            break;
                        case PropertyValueType.Boolean:
                            ((BooleanValue)_values[name]).Value = reader.GetBoolean(name);
                            break;
                        case PropertyValueType.Byte:
                            ((ByteValue)_values[name]).Value = reader.GetByte(name);
                            break;
                        case PropertyValueType.Clob:
                            byte [] b = Utility.StreamAsArray(new MgReadOnlyStream(getclob));
                            ((ClobValue)_values[name]).Value = Encoding.UTF8.GetChars(b);
                            break;
                        case PropertyValueType.DateTime:
                            ((DateTimeValue)_values[name]).Value = Utility.ConvertMgDateTime(reader.GetDateTime(name));
                            break;
                        case PropertyValueType.Double:
                            ((DoubleValue)_values[name]).Value = reader.GetDouble(name);
                            break;
                        //case PropertyValueType.Feature:
                        case PropertyValueType.Geometry:
                            try
                            {
                                //TODO: See if SWIG issues come into play here
                                var geom = agfRw.Read(reader.GetGeometry(name));
                                var wkt = wktRw.Write(geom);
                                ((GeometryValue)_values[name]).Value = mgReader.Read(wkt);
                            }
                            catch //Invalid geometry fail!
                            {
                                ((GeometryValue)_values[name]).SetNull();
                            }
                            break;
                        case PropertyValueType.Int16:
                            ((Int16Value)_values[name]).Value = reader.GetInt16(name);
                            break;
                        case PropertyValueType.Int32:
                            ((Int32Value)_values[name]).Value = reader.GetInt32(name);
                            break;
                        case PropertyValueType.Int64:
                            ((Int64Value)_values[name]).Value = reader.GetInt64(name);
                            break;
                        case PropertyValueType.Single:
                            ((SingleValue)_values[name]).Value = reader.GetSingle(name);
                            break;
                        case PropertyValueType.String:
                            ((StringValue)_values[name]).Value = reader.GetString(name);
                            break;
                    }
                }
            }
        }
Esempio n. 23
0
        public XmlRecord(XmlProperty[] properties, FixedWKTReader wktReader, XmlNodeList propertyNodes, string nameElement, string valueElement)
        {
            for (int i = 0; i < properties.Length; i++)
            {
                string name = properties[i].Name;
                _ordinalMap[i] = name;

                switch (properties[i].Type)
                {
                    case PropertyValueType.Blob:
                        _values[name] = new BlobValue();
                        break;
                    case PropertyValueType.Boolean:
                        _values[name] = new BooleanValue();
                        break;
                    case PropertyValueType.Byte:
                        _values[name] = new ByteValue();
                        break;
                    case PropertyValueType.Clob:
                        _values[name] = new ClobValue();
                        break;
                    case PropertyValueType.DateTime:
                        _values[name] = new DateTimeValue();
                        break;
                    case PropertyValueType.Double:
                        _values[name] = new DoubleValue();
                        break;
                    case PropertyValueType.Feature:
                        _values[name] = new FeatureValue();
                        break;
                    case PropertyValueType.Geometry:
                        _values[name] = new GeometryValue();
                        break;
                    case PropertyValueType.Int16:
                        _values[name] = new Int16Value();
                        break;
                    case PropertyValueType.Int32:
                        _values[name] = new Int32Value();
                        break;
                    case PropertyValueType.Int64:
                        _values[name] = new Int64Value();
                        break;
                    case PropertyValueType.Raster:
                        _values[name] = new RasterValue();
                        break;
                    case PropertyValueType.Single:
                        _values[name] = new SingleValue();
                        break;
                    case PropertyValueType.String:
                        _values[name] = new StringValue();
                        break;
                }
            }

            foreach (XmlNode propNode in propertyNodes)
            {
                var name = propNode[nameElement].InnerText;
                var valueNode = propNode[valueElement];
                if (valueNode != null)
                {
                    var value = valueNode.InnerText;
                    switch (_values[name].Type)
                    {
                        case PropertyValueType.Blob:
                            ((BlobValue)_values[name]).Value = Encoding.UTF8.GetBytes(value);
                            break;
                        case PropertyValueType.Boolean:
                            ((BooleanValue)_values[name]).Value = XmlConvert.ToBoolean(value);
                            break;
                        case PropertyValueType.Byte:
                            ((ByteValue)_values[name]).Value = XmlConvert.ToByte(value);
                            break;
                        case PropertyValueType.Clob:
                            ((ClobValue)_values[name]).Value = value.ToCharArray();
                            break;
                        case PropertyValueType.DateTime:
                            var dt = ConvertToDateTime(value);
                            if (dt.HasValue)
                                ((DateTimeValue)_values[name]).Value = dt.Value;
                            break;
                        case PropertyValueType.Double:
                            ((DoubleValue)_values[name]).Value = XmlConvert.ToDouble(value);
                            break;
                        case PropertyValueType.Feature:
                            ((FeatureValue)_values[name]).Value = ConvertToFeatures(value);
                            break;
                        case PropertyValueType.Geometry:
                            ((GeometryValue)_values[name]).Value = wktReader.Read(value);
                            break;
                        case PropertyValueType.Int16:
                            ((Int16Value)_values[name]).Value = XmlConvert.ToInt16(value);
                            break;
                        case PropertyValueType.Int32:
                            ((Int32Value)_values[name]).Value = XmlConvert.ToInt32(value);
                            break;
                        case PropertyValueType.Int64:
                            ((Int64Value)_values[name]).Value = XmlConvert.ToInt64(value);
                            break;
                        case PropertyValueType.Raster:
                            ((RasterValue)_values[name]).Value = ConvertToRaster(value);
                            break;
                        case PropertyValueType.Single:
                            ((SingleValue)_values[name]).Value = XmlConvert.ToSingle(value);
                            break;
                        case PropertyValueType.String:
                            ((StringValue)_values[name]).Value = value;
                            break;
                    }
                }
            }
        }
Esempio n. 24
0
        /// <summary>
        /// Gets the values.
        /// </summary>
        /// <returns></returns>
        public Dictionary<string, ValueExpression> GetValues()
        {
            Dictionary<string, ValueExpression> values = new Dictionary<string, ValueExpression>();
            foreach (DataGridViewRow row in grdProperties.Rows)
            {
                string name = row.Cells[0].Value.ToString();
                PropertyDefinition propDef = row.Cells[0].Tag as PropertyDefinition;
                if (row.Cells[1].Value != null)
                {
                    string str = row.Cells[1].Value.ToString();
                    if (!string.IsNullOrEmpty(str))
                    {
                        ValueExpression expr = null;
                        if (propDef.PropertyType == PropertyType.PropertyType_DataProperty)
                        {
                            DataPropertyDefinition dp = propDef as DataPropertyDefinition;
                            switch (dp.DataType)
                            {
                                case DataType.DataType_Boolean:
                                    expr = new BooleanValue(Convert.ToBoolean(str));
                                    break;
                                case DataType.DataType_Byte:
                                    expr = new ByteValue(Convert.ToByte(str));
                                    break;
                                case DataType.DataType_DateTime:
                                    expr = new DateTimeValue(Convert.ToDateTime(str));
                                    break;
                                case DataType.DataType_Decimal:
                                    expr = new DecimalValue(Convert.ToDouble(str));
                                    break;
                                case DataType.DataType_Double:
                                    expr = new DoubleValue(Convert.ToDouble(str));
                                    break;
                                case DataType.DataType_Int16:
                                    expr = new Int16Value(Convert.ToInt16(str));
                                    break;
                                case DataType.DataType_Int32:
                                    expr = new Int32Value(Convert.ToInt32(str));
                                    break;
                                case DataType.DataType_Int64:
                                    expr = new Int64Value(Convert.ToInt64(str));
                                    break;
                                case DataType.DataType_Single:
                                    expr = new SingleValue(Convert.ToSingle(str));
                                    break;
                                case DataType.DataType_String:
                                    expr = new StringValue(str);
                                    break;
                                default:
                                    throw new NotSupportedException("Unsupported data type: " + dp.DataType);
                            }
                        }
                        else if (propDef.PropertyType == PropertyType.PropertyType_GeometricProperty)
                        {
                            FdoGeometryFactory fact = FdoGeometryFactory.Instance;
                            OSGeo.FDO.Geometry.IGeometry geom = fact.CreateGeometry(str);
                            byte[] fgf = fact.GetFgf(geom);
                            expr = new GeometryValue(fgf);
                            geom.Dispose();
                        }

                        if (expr != null)
                            values.Add(name, expr);
                    }
                }
            }
            return values;
        }
Esempio n. 25
0
        private void Prepare(PropertyValueCollection propVals)
        {
            propVals.Clear();
            currentValues.Clear();

            // I do not trust the long-term stability of the PropertyValueCollection
            //
            // So what we do is load it up once with LiteralValue references and manipulate these
            // outside of the collection (via a cached dictionary). We cache everything from the wrapper API
            // that can be cached in the managed world so that we only have minimal contact with it

            // Omit read-only properties
            using (FdoFeatureService service = _conn.CreateFeatureService())
            {
                ClassDefinition c = service.GetClassByName(this.ClassName);
                foreach (PropertyDefinition p in c.Properties)
                {
                    string        name = p.Name;
                    PropertyValue pv   = new PropertyValue(name, null);
                    if (p.PropertyType == PropertyType.PropertyType_DataProperty)
                    {
                        DataPropertyDefinition d = p as DataPropertyDefinition;
                        if (!d.ReadOnly && !d.IsAutoGenerated)
                        {
                            DataValue dv = null;
                            switch (d.DataType)
                            {
                            case DataType.DataType_BLOB:
                                dv = new BLOBValue();
                                break;

                            case DataType.DataType_Boolean:
                                dv = new BooleanValue();
                                break;

                            case DataType.DataType_Byte:
                                dv = new ByteValue();
                                break;

                            case DataType.DataType_CLOB:
                                dv = new CLOBValue();
                                break;

                            case DataType.DataType_DateTime:
                                dv = new DateTimeValue();
                                break;

                            case DataType.DataType_Decimal:
                                dv = new DecimalValue();
                                break;

                            case DataType.DataType_Double:
                                dv = new DoubleValue();
                                break;

                            case DataType.DataType_Int16:
                                dv = new Int16Value();
                                break;

                            case DataType.DataType_Int32:
                                dv = new Int32Value();
                                break;

                            case DataType.DataType_Int64:
                                dv = new Int64Value();
                                break;

                            case DataType.DataType_Single:
                                dv = new SingleValue();
                                break;

                            case DataType.DataType_String:
                                dv = new StringValue();
                                break;
                            }
                            if (dv != null)
                            {
                                pv.Value = dv;
                                propVals.Add(pv);
                            }
                        }
                    }
                    else if (p.PropertyType == PropertyType.PropertyType_GeometricProperty)
                    {
                        GeometricPropertyDefinition g = p as GeometricPropertyDefinition;
                        if (!g.ReadOnly)
                        {
                            GeometryValue gv = new GeometryValue();
                            pv.Value = gv;
                            propVals.Add(pv);
                        }
                    }
                }
                c.Dispose();
            }

            //Load property values into temp dictionary
            foreach (PropertyValue p in propVals)
            {
                currentValues[p.Name.Name] = p.Value as LiteralValue;
            }

            if (propertySnapshot == null)
            {
                propertySnapshot = new List <string>();
                foreach (PropertyValue p in propVals)
                {
                    propertySnapshot.Add(p.Name.Name);
                }
            }
        }
 internal Property_Shape_ExtentWest(PropertyRoot owner) : base(owner)
 {
     Value = new Int16Value(this);
 }
Esempio n. 27
0
        /// <summary>
        /// Gets the values.
        /// </summary>
        /// <returns></returns>
        public Dictionary <string, ValueExpression> GetValues()
        {
            Dictionary <string, ValueExpression> values = new Dictionary <string, ValueExpression>();

            foreach (DataGridViewRow row in grdProperties.Rows)
            {
                bool enabled = Convert.ToBoolean(row.Cells[0].Value);
                bool setNull = Convert.ToBoolean(row.Cells[1].Value);
                if (enabled)
                {
                    string             name    = row.Cells[2].Value.ToString();
                    PropertyDefinition propDef = row.Cells[2].Tag as PropertyDefinition;
                    if (setNull)
                    {
                        LiteralValue expr = null;
                        if (propDef.PropertyType == PropertyType.PropertyType_DataProperty)
                        {
                            DataPropertyDefinition dp = propDef as DataPropertyDefinition;
                            switch (dp.DataType)
                            {
                            case DataType.DataType_BLOB:
                                expr = new BLOBValue();
                                break;

                            case DataType.DataType_Boolean:
                                expr = new BooleanValue();
                                break;

                            case DataType.DataType_Byte:
                                expr = new ByteValue();
                                break;

                            case DataType.DataType_CLOB:
                                expr = new CLOBValue();
                                break;

                            case DataType.DataType_DateTime:
                                expr = new DateTimeValue();
                                break;

                            case DataType.DataType_Decimal:
                                expr = new DecimalValue();
                                break;

                            case DataType.DataType_Double:
                                expr = new DoubleValue();
                                break;

                            case DataType.DataType_Int16:
                                expr = new Int16Value();
                                break;

                            case DataType.DataType_Int32:
                                expr = new Int32Value();
                                break;

                            case DataType.DataType_Int64:
                                expr = new Int64Value();
                                break;

                            case DataType.DataType_Single:
                                expr = new SingleValue();
                                break;

                            case DataType.DataType_String:
                                expr = new StringValue();
                                break;
                            }
                        }
                        else if (propDef.PropertyType == PropertyType.PropertyType_GeometricProperty)
                        {
                            expr = new GeometryValue();
                        }

                        if (expr != null)
                        {
                            if (expr.LiteralValueType == LiteralValueType.LiteralValueType_Data)
                            {
                                (expr as DataValue).SetNull();
                            }
                            else
                            {
                                (expr as GeometryValue).SetNull();
                            }

                            values.Add(name, expr);
                        }
                    }
                    else
                    {
                        if (row.Cells[2].Value != null)
                        {
                            string str = row.Cells[3].Value.ToString();
                            if (!string.IsNullOrEmpty(str))
                            {
                                ValueExpression expr = null;
                                if (propDef.PropertyType == PropertyType.PropertyType_DataProperty)
                                {
                                    DataPropertyDefinition dp = propDef as DataPropertyDefinition;
                                    switch (dp.DataType)
                                    {
                                    case DataType.DataType_Boolean:
                                        expr = new BooleanValue(Convert.ToBoolean(str));
                                        break;

                                    case DataType.DataType_Byte:
                                        expr = new ByteValue(Convert.ToByte(str));
                                        break;

                                    case DataType.DataType_DateTime:
                                        expr = new DateTimeValue(Convert.ToDateTime(str));
                                        break;

                                    case DataType.DataType_Decimal:
                                        expr = new DecimalValue(Convert.ToDouble(str));
                                        break;

                                    case DataType.DataType_Double:
                                        expr = new DoubleValue(Convert.ToDouble(str));
                                        break;

                                    case DataType.DataType_Int16:
                                        expr = new Int16Value(Convert.ToInt16(str));
                                        break;

                                    case DataType.DataType_Int32:
                                        expr = new Int32Value(Convert.ToInt32(str));
                                        break;

                                    case DataType.DataType_Int64:
                                        expr = new Int64Value(Convert.ToInt64(str));
                                        break;

                                    case DataType.DataType_Single:
                                        expr = new SingleValue(Convert.ToSingle(str));
                                        break;

                                    case DataType.DataType_String:
                                        expr = new StringValue(str);
                                        break;

                                    default:
                                        throw new NotSupportedException("Unsupported data type: " + dp.DataType);
                                    }
                                }
                                else if (propDef.PropertyType == PropertyType.PropertyType_GeometricProperty)
                                {
                                    FdoGeometryFactory           fact = FdoGeometryFactory.Instance;
                                    OSGeo.FDO.Geometry.IGeometry geom = fact.CreateGeometry(str);
                                    byte[] fgf = fact.GetFgf(geom);
                                    expr = new GeometryValue(fgf);
                                    geom.Dispose();
                                }

                                if (expr != null)
                                {
                                    values.Add(name, expr);
                                }
                            }
                        }
                    }
                }
            }
            return(values);
        }
Esempio n. 28
0
        public void OpenXmlSimpleTypeConverterTest()
        {
            // 1. Base64BinaryValue
            Base64BinaryValue base64 = new Base64BinaryValue();

            base64 = "AA3322";
            Assert.True(base64 == "AA3322");
            Assert.Equal("AA3322", base64.Value);
            base64 = Base64BinaryValue.FromString("1234");
            Assert.Equal("1234", base64.ToString());
            Assert.Equal("1234", Base64BinaryValue.ToString(base64));

            // 2. BooleanValue
            BooleanValue booleanValue = new BooleanValue();

            booleanValue = true;
            Assert.True(booleanValue);
            Assert.True(booleanValue.Value);
            booleanValue = BooleanValue.FromBoolean(false);
            Assert.False(booleanValue);
            Assert.False(BooleanValue.ToBoolean(booleanValue));

            // 3. ByteValue
            ByteValue byteValue = new ByteValue();
            byte      bt        = 1;

            byteValue = bt;
            Assert.True(bt == byteValue);
            Assert.Equal(bt, byteValue.Value);
            bt        = 2;
            byteValue = ByteValue.FromByte(bt);
            Assert.Equal(bt, ByteValue.ToByte(byteValue));

            // 4. DateTimeValue
            DateTimeValue dtValue = new DateTimeValue();
            DateTime      dt      = DateTime.Now;

            dtValue = dt;
            Assert.True(dt == dtValue);
            dt      = DateTime.Now.AddDays(1);
            dtValue = DateTimeValue.FromDateTime(dt);
            Assert.Equal(dt, dtValue.Value);
            Assert.Equal(dt, DateTimeValue.ToDateTime(dt));

            // 5. DecimalValue
            DecimalValue decimalValue = new DecimalValue();
            decimal      dcm          = 10;

            decimalValue = dcm;
            Assert.True(dcm == decimalValue);
            decimalValue = DecimalValue.FromDecimal(20);
            Assert.Equal(20, decimalValue.Value);
            Assert.Equal(20, DecimalValue.ToDecimal(decimalValue));

            // 6. DoubleValue
            DoubleValue doubleValue = new DoubleValue();
            double      dbl         = 1.1;

            doubleValue = dbl;
            Assert.True(dbl == doubleValue);
            doubleValue = DoubleValue.FromDouble(2.2);
            Assert.Equal(2.2, doubleValue.Value);
            Assert.Equal(2.2, DoubleValue.ToDouble(doubleValue));

            // 7. HexBinaryValue
            HexBinaryValue hexBinaryValue = new HexBinaryValue();
            string         hex            = "0X99CCFF";

            hexBinaryValue = hex;
            Assert.True(hex == hexBinaryValue);
            hex            = "111111";
            hexBinaryValue = HexBinaryValue.FromString(hex);
            Assert.Equal(hex, hexBinaryValue.Value);
            Assert.Equal(hex, HexBinaryValue.ToString(hexBinaryValue));

            // 8. Int16
            Int16Value int16Value = new Int16Value();
            short      int16      = 16;

            int16Value = int16;
            Assert.True(int16 == int16Value);
            int16      = 17;
            int16Value = Int16Value.FromInt16(int16);
            Assert.Equal(int16, int16Value.Value);
            Assert.Equal(int16, Int16Value.ToInt16(int16Value));

            // 9. Int32
            Int32Value int32Value = new Int32Value();
            int        int32      = 32;

            int32Value = int32;
            Assert.True(int32 == int32Value);
            int32      = 33;
            int32Value = Int32Value.FromInt32(int32);
            Assert.Equal(int32, int32Value.Value);
            Assert.Equal(int32, Int32Value.ToInt32(int32Value));

            // 10. Int64
            Int64Value int64Value = new Int64Value();
            long       int64      = 64;

            int64Value = int64;
            Assert.True(int64 == int64Value);
            int64      = 17;
            int64Value = Int64Value.FromInt64(int64);
            Assert.Equal(int64, int64Value.Value);
            Assert.Equal(int64, Int64Value.ToInt64(int64Value));

            // 11. IntegerValue
            IntegerValue integerValue = new IntegerValue();
            int          integer      = 64;

            integerValue = integer;
            Assert.True(integer == integerValue);
            integer      = 17;
            integerValue = IntegerValue.FromInt64(integer);
            Assert.Equal(integer, integerValue.Value);
            Assert.Equal(integer, IntegerValue.ToInt64(integerValue));

            // 12. OnOffValue
            OnOffValue onOffValue = new OnOffValue();

            onOffValue = true;
            Assert.True(onOffValue);
            onOffValue = OnOffValue.FromBoolean(false);
            Assert.False(onOffValue.Value);
            Assert.False(OnOffValue.ToBoolean(onOffValue));

            // 13. SByteValue
            SByteValue sbyteValue = new SByteValue();
            sbyte      sbt        = sbyte.MaxValue;

            sbyteValue = sbt;
            Assert.True(sbt == sbyteValue);
            sbt        = sbyte.MinValue;
            sbyteValue = SByteValue.FromSByte(sbt);
            Assert.Equal(sbt, sbyteValue.Value);
            Assert.Equal(sbt, SByteValue.ToSByte(sbt));

            // 14. SingleValue
            SingleValue singleValue = new SingleValue();
            float       single      = float.MaxValue;

            singleValue = single;
            Assert.True(single == singleValue);
            single      = float.NaN;
            singleValue = SingleValue.FromSingle(single);
            Assert.Equal(single, singleValue.Value);
            Assert.Equal(single, SingleValue.ToSingle(singleValue));

            // 15. StringValue
            StringValue stringValue = new StringValue();
            string      str         = "Ethan";

            stringValue = str;
            Assert.True(str == stringValue);
            str         = "Yin";
            stringValue = StringValue.FromString(str);
            Assert.Equal(str, stringValue.Value);
            Assert.Equal(str, stringValue.ToString());
            Assert.Equal(str, StringValue.ToString(stringValue));

            // 16. TrueFalseBlankValue
            TrueFalseBlankValue tfbValue = new TrueFalseBlankValue();

            tfbValue = true;
            Assert.True(tfbValue);
            tfbValue = TrueFalseBlankValue.FromBoolean(false);
            Assert.False(tfbValue.Value);
            Assert.False(TrueFalseBlankValue.ToBoolean(tfbValue));

            // 17. TrueFalseValue
            TrueFalseValue tfValue = new TrueFalseValue();

            tfValue = true;
            Assert.True(tfValue);
            tfValue = TrueFalseValue.FromBoolean(false);
            Assert.False(tfValue.Value);
            Assert.False(TrueFalseValue.ToBoolean(tfValue));

            // 18. UInt16Value
            UInt16Value uint16Value = new UInt16Value();
            ushort      uint16      = ushort.MaxValue;

            uint16Value = uint16;
            Assert.True(uint16 == uint16Value);
            uint16      = ushort.MinValue;
            uint16Value = UInt16Value.FromUInt16(uint16);
            Assert.Equal(uint16, uint16Value.Value);
            Assert.Equal(uint16, UInt16Value.ToUInt16(uint16Value));

            // 19. UInt32Value
            UInt32Value uint32Value = new UInt32Value();
            uint        uint32      = uint.MaxValue;

            uint32Value = uint32;
            Assert.True(uint32 == uint32Value);
            uint32      = uint.MinValue;
            uint32Value = UInt32Value.FromUInt32(uint32);
            Assert.Equal(uint32, uint32Value.Value);
            Assert.Equal(uint32, UInt32Value.ToUInt32(uint32Value));

            // 20. UInt64Value
            UInt64Value uint64Value = new UInt64Value();
            ulong       uint64      = ulong.MaxValue;

            uint64Value = uint64;
            Assert.True(uint64 == uint64Value);
            uint64      = ulong.MinValue;
            uint64Value = UInt64Value.FromUInt64(uint64);
            Assert.Equal(uint64, uint64Value.Value);
            Assert.Equal(uint64, UInt64Value.ToUInt64(uint64Value));
        }
        public void OpenXmlSimpleTypeConverterTest()
        {
            // 1. Base64BinaryValue
            Base64BinaryValue base64 = new Base64BinaryValue();
            base64 = "AA3322";
            Assert.True("AA3322" == base64);
            Assert.Equal("AA3322", base64.Value);
            base64 = Base64BinaryValue.FromString("1234");
            Assert.Equal("1234", base64.ToString());
            Assert.Equal("1234", Base64BinaryValue.ToString(base64));

            // 2. BooleanValue
            BooleanValue booleanValue = new BooleanValue();
            booleanValue = true;
            Assert.True(booleanValue);
            Assert.True(booleanValue.Value);
            booleanValue = BooleanValue.FromBoolean(false);
            Assert.False(booleanValue);
            Assert.Equal(false, BooleanValue.ToBoolean(booleanValue));

            // 3. ByteValue
            ByteValue byteValue = new ByteValue();
            Byte bt = 1;
            byteValue = bt;
            Assert.True(bt == byteValue);
            Assert.Equal(bt, byteValue.Value);
            bt = 2;
            byteValue = ByteValue.FromByte(bt);
            Assert.Equal(bt, ByteValue.ToByte(byteValue));

            // 4. DateTimeValue
            DateTimeValue dtValue = new DateTimeValue();
            DateTime dt = DateTime.Now;
            dtValue = dt;
            Assert.True(dt == dtValue);
            dt = DateTime.Now.AddDays(1);
            dtValue = DateTimeValue.FromDateTime(dt);
            Assert.Equal(dt, dtValue.Value);
            Assert.Equal(dt, DateTimeValue.ToDateTime(dt));

            // 5. DecimalValue
            DecimalValue decimalValue = new DecimalValue();
            decimal dcm = 10;
            decimalValue = dcm;
            Assert.True(dcm == decimalValue);
            decimalValue = DecimalValue.FromDecimal(20);
            Assert.Equal(20, decimalValue.Value);
            Assert.Equal(20, DecimalValue.ToDecimal(decimalValue));

            // 6. DoubleValue
            DoubleValue doubleValue = new DoubleValue();
            double dbl = 1.1;
            doubleValue = dbl;
            Assert.True(dbl == doubleValue);
            doubleValue = DoubleValue.FromDouble(2.2);
            Assert.Equal(2.2, doubleValue.Value);
            Assert.Equal(2.2, DoubleValue.ToDouble(doubleValue));

            // 7. HexBinaryValue
            HexBinaryValue hexBinaryValue = new HexBinaryValue();
            string hex = "0X99CCFF";
            hexBinaryValue = hex;
            Assert.True(hex == hexBinaryValue);
            hex = "111111";
            hexBinaryValue = HexBinaryValue.FromString(hex);
            Assert.Equal(hex, hexBinaryValue.Value);
            Assert.Equal(hex, HexBinaryValue.ToString(hexBinaryValue));

            // 8. Int16
            Int16Value int16Value = new Int16Value();
            Int16 int16 = 16;
            int16Value = int16;
            Assert.True(int16 == int16Value);
            int16 = 17;
            int16Value = Int16Value.FromInt16(int16);
            Assert.Equal(int16, int16Value.Value);
            Assert.Equal(int16, Int16Value.ToInt16(int16Value));

            // 9. Int32
            Int32Value int32Value = new Int32Value();
            Int32 int32 = 32;
            int32Value = int32;
            Assert.True(int32 == int32Value);
            int32 = 33;
            int32Value = Int32Value.FromInt32(int32);
            Assert.Equal(int32, int32Value.Value);
            Assert.Equal(int32, Int32Value.ToInt32(int32Value));

            // 10. Int64
            Int64Value int64Value = new Int64Value();
            Int64 int64 = 64;
            int64Value = int64;
            Assert.True(int64 == int64Value);
            int64 = 17;
            int64Value = Int64Value.FromInt64(int64);
            Assert.Equal(int64, int64Value.Value);
            Assert.Equal(int64, Int64Value.ToInt64(int64Value));

            // 11. IntegerValue
            IntegerValue integerValue = new IntegerValue();
            int integer = 64;
            integerValue = integer;
            Assert.True(integer == integerValue);
            integer = 17;
            integerValue = IntegerValue.FromInt64(integer);
            Assert.Equal(integer, integerValue.Value);
            Assert.Equal(integer, IntegerValue.ToInt64(integerValue));

            // 12. OnOffValue
            OnOffValue onOffValue = new OnOffValue();
            onOffValue = true;
            Assert.True(onOffValue);
            onOffValue = OnOffValue.FromBoolean(false);
            Assert.Equal(false, onOffValue.Value);
            Assert.Equal(false, OnOffValue.ToBoolean(onOffValue));

            // 13. SByteValue
            SByteValue sbyteValue = new SByteValue();
            SByte sbt = SByte.MaxValue;
            sbyteValue = sbt;
            Assert.True(sbt == sbyteValue);
            sbt = SByte.MinValue;
            sbyteValue = SByteValue.FromSByte(sbt);
            Assert.Equal(sbt, sbyteValue.Value);
            Assert.Equal(sbt, SByteValue.ToSByte(sbt));

            // 14. SingleValue
            SingleValue singleValue = new SingleValue();
            Single single = Single.MaxValue;
            singleValue = single;
            Assert.True(single == singleValue);
            single = Single.NaN;
            singleValue = SingleValue.FromSingle(single);
            Assert.Equal(single, singleValue.Value);
            Assert.Equal(single, SingleValue.ToSingle(singleValue));

            // 15. StringValue
            StringValue stringValue = new StringValue();
            String str = "Ethan";
            stringValue = str;
            Assert.True(str == stringValue);
            str = "Yin";
            stringValue = StringValue.FromString(str);
            Assert.Equal(str, stringValue.Value);
            Assert.Equal(str, stringValue.ToString());
            Assert.Equal(str, StringValue.ToString(stringValue));

            // 16. TrueFalseBlankValue
            TrueFalseBlankValue tfbValue = new TrueFalseBlankValue();
            tfbValue = true;
            Assert.True(tfbValue);
            tfbValue = TrueFalseBlankValue.FromBoolean(false);
            Assert.Equal(false, tfbValue.Value);
            Assert.Equal(false, TrueFalseBlankValue.ToBoolean(tfbValue));

            // 17. TrueFalseValue
            TrueFalseValue tfValue = new TrueFalseValue();
            tfValue = true;
            Assert.True(tfValue);
            tfValue = TrueFalseValue.FromBoolean(false);
            Assert.Equal(false, tfValue.Value);
            Assert.Equal(false, TrueFalseValue.ToBoolean(tfValue));

            // 18. UInt16Value
            UInt16Value uint16Value = new UInt16Value();
            UInt16 uint16 = UInt16.MaxValue;
            uint16Value = uint16;
            Assert.True(uint16 == uint16Value);
            uint16 = UInt16.MinValue;
            uint16Value = UInt16Value.FromUInt16(uint16);
            Assert.Equal(uint16, uint16Value.Value);
            Assert.Equal(uint16, UInt16Value.ToUInt16(uint16Value));

            // 19. UInt32Value
            UInt32Value uint32Value = new UInt32Value();
            UInt32 uint32 = UInt32.MaxValue;
            uint32Value = uint32;
            Assert.True(uint32 == uint32Value);
            uint32 = UInt32.MinValue;
            uint32Value = UInt32Value.FromUInt32(uint32);
            Assert.Equal(uint32, uint32Value.Value);
            Assert.Equal(uint32, UInt32Value.ToUInt32(uint32Value));

            // 20. UInt64Value
            UInt64Value uint64Value = new UInt64Value();
            UInt64 uint64 = UInt64.MaxValue;
            uint64Value = uint64;
            Assert.True(uint64 == uint64Value);
            uint64 = UInt64.MinValue;
            uint64Value = UInt64Value.FromUInt64(uint64);
            Assert.Equal(uint64, uint64Value.Value);
            Assert.Equal(uint64, UInt64Value.ToUInt64(uint64Value));
        }
        public void Bug520719()
        {
            // the following test should pass without Assert() in debug version.
            
            var int8 = new SByteValue();
            int8.InnerText = "+10";
            Assert.Equal(10, int8.Value);
            Assert.Equal("+10", int8.InnerText);

            var int16 = new Int16Value();
            int16.InnerText = "+10";
            Assert.Equal(10, int16.Value);
            Assert.Equal("+10", int16.InnerText);

            var int32 = new Int32Value();
            int32.InnerText = "+10";
            Assert.Equal(10, int32.Value);
            Assert.Equal("+10", int32.InnerText);

            var int64 = new Int64Value();
            int64.InnerText = "+10";
            Assert.Equal(10, int64.Value);
            Assert.Equal("+10", int64.InnerText);

            var integer = new IntegerValue();
            integer.InnerText = "+10";
            Assert.Equal(10, integer.Value);
            Assert.Equal("+10", integer.InnerText);

            var dec = new DecimalValue();
            dec.InnerText = "+10";
            Assert.Equal(10, dec.Value);
            Assert.Equal("+10", dec.InnerText);

            var single = new SingleValue();
            single.InnerText = "+10";
            Assert.Equal(10, single.Value);
            Assert.Equal("+10", single.InnerText);

            var dble = new DoubleValue();
            dble.InnerText = "+10";
            Assert.Equal(10, dble.Value);
            Assert.Equal("+10", dble.InnerText);
        }
Esempio n. 31
0
 public object ChangeType_Int16()
 {
     return(Int16Value.ChangeType(typeof(Int16), CultureInfo.InvariantCulture));
 }