コード例 #1
0
        private void InitIdentityProperties(IVectorLayerDefinition vl, bool suppressErrors)
        {
            try
            {
                var fs  = (IFeatureSource)this.Parent.ResourceService.GetResource(vl.ResourceId);
                var cls = this.Parent.FeatureService.GetClassDefinition(fs.ResourceID, vl.FeatureName);
                if (cls == null)
                {
                    throw new Exception(string.Format(Strings.ERR_CLASS_NOT_FOUND, vl.FeatureName));
                }

                var idProps  = cls.IdentityProperties;
                var propInfo = new PropertyInfo[idProps.Count];

                int i = 0;
                foreach (var prop in idProps)
                {
                    propInfo[i] = new PropertyInfo(prop.Name, ClrFdoTypeMap.GetClrType(prop.DataType));
                    i++;
                }

                this.IdentityProperties = propInfo;
            }
            catch (Exception ex) //Has to be a bug in MapGuide or in the FDO provider
            {
                //If not suppressing, rethrow with original stack trace
                if (!suppressErrors)
                {
                    throw;
                }

                this.IdentityProperties = new PropertyInfo[0];
                Trace.TraceWarning(string.Format(Strings.ERR_INIT_IDENTITY_PROPS, Environment.NewLine, this.Name, ex.ToString()));
            }
        }
コード例 #2
0
        public override Type GetFieldType(int i)
        {
            string name = GetName(i);
            //The enum uses the same values as MgPropertyType
            var type = (PropertyValueType)_reader.GetPropertyType(name);

            return(ClrFdoTypeMap.GetClrType(type));
        }
コード例 #3
0
 public override Type GetFieldType(int i)
 {
     return(ClrFdoTypeMap.GetClrType(_properties[i].Type));
 }
コード例 #4
0
        public void TestCase_ClrFdoTypeMap()
        {
            Assert.AreEqual(typeof(byte[]), ClrFdoTypeMap.GetClrType(DataPropertyType.Blob));
            Assert.AreEqual(typeof(bool), ClrFdoTypeMap.GetClrType(DataPropertyType.Boolean));
            Assert.AreEqual(typeof(byte), ClrFdoTypeMap.GetClrType(DataPropertyType.Byte));
            Assert.AreEqual(typeof(char[]), ClrFdoTypeMap.GetClrType(DataPropertyType.Clob));
            Assert.AreEqual(typeof(DateTime), ClrFdoTypeMap.GetClrType(DataPropertyType.DateTime));
            Assert.AreEqual(typeof(double), ClrFdoTypeMap.GetClrType(DataPropertyType.Double));
            Assert.AreEqual(typeof(short), ClrFdoTypeMap.GetClrType(DataPropertyType.Int16));
            Assert.AreEqual(typeof(int), ClrFdoTypeMap.GetClrType(DataPropertyType.Int32));
            Assert.AreEqual(typeof(long), ClrFdoTypeMap.GetClrType(DataPropertyType.Int64));
            Assert.AreEqual(typeof(float), ClrFdoTypeMap.GetClrType(DataPropertyType.Single));
            Assert.AreEqual(typeof(string), ClrFdoTypeMap.GetClrType(DataPropertyType.String));

            DataPropertyDefinition dp = null;

            dp          = new DataPropertyDefinition("Data", "");
            dp.DataType = DataPropertyType.Blob;
            Assert.AreEqual(typeof(byte[]), ClrFdoTypeMap.GetClrType(dp));
            dp          = new DataPropertyDefinition("Data", "");
            dp.DataType = DataPropertyType.Boolean;
            Assert.AreEqual(typeof(bool), ClrFdoTypeMap.GetClrType(dp));
            dp          = new DataPropertyDefinition("Data", "");
            dp.DataType = DataPropertyType.Byte;
            Assert.AreEqual(typeof(byte), ClrFdoTypeMap.GetClrType(dp));
            dp          = new DataPropertyDefinition("Data", "");
            dp.DataType = DataPropertyType.Clob;
            Assert.AreEqual(typeof(char[]), ClrFdoTypeMap.GetClrType(dp));
            dp          = new DataPropertyDefinition("Data", "");
            dp.DataType = DataPropertyType.DateTime;
            Assert.AreEqual(typeof(DateTime), ClrFdoTypeMap.GetClrType(dp));
            dp          = new DataPropertyDefinition("Data", "");
            dp.DataType = DataPropertyType.Double;
            Assert.AreEqual(typeof(double), ClrFdoTypeMap.GetClrType(dp));
            dp          = new DataPropertyDefinition("Data", "");
            dp.DataType = DataPropertyType.Int16;
            Assert.AreEqual(typeof(short), ClrFdoTypeMap.GetClrType(dp));
            dp          = new DataPropertyDefinition("Data", "");
            dp.DataType = DataPropertyType.Int32;
            Assert.AreEqual(typeof(int), ClrFdoTypeMap.GetClrType(dp));
            dp          = new DataPropertyDefinition("Data", "");
            dp.DataType = DataPropertyType.Int64;
            Assert.AreEqual(typeof(long), ClrFdoTypeMap.GetClrType(dp));
            dp          = new DataPropertyDefinition("Data", "");
            dp.DataType = DataPropertyType.Single;
            Assert.AreEqual(typeof(float), ClrFdoTypeMap.GetClrType(dp));
            dp          = new DataPropertyDefinition("Data", "");
            dp.DataType = DataPropertyType.String;
            Assert.AreEqual(typeof(string), ClrFdoTypeMap.GetClrType(dp));

            var gp = new GeometricPropertyDefinition("Geom", "");

            Assert.AreEqual(typeof(IGeometry), ClrFdoTypeMap.GetClrType(gp));

            var op = new RasterPropertyDefinition("Raster", "");

            Assert.Throws <ArgumentException>(() => { var t = ClrFdoTypeMap.GetClrType(op); });

            Assert.AreEqual(typeof(byte[]), ClrFdoTypeMap.GetClrType(PropertyValueType.Blob));
            Assert.AreEqual(typeof(bool), ClrFdoTypeMap.GetClrType(PropertyValueType.Boolean));
            Assert.AreEqual(typeof(byte), ClrFdoTypeMap.GetClrType(PropertyValueType.Byte));
            Assert.AreEqual(typeof(char[]), ClrFdoTypeMap.GetClrType(PropertyValueType.Clob));
            Assert.AreEqual(typeof(DateTime), ClrFdoTypeMap.GetClrType(PropertyValueType.DateTime));
            Assert.AreEqual(typeof(double), ClrFdoTypeMap.GetClrType(PropertyValueType.Double));
            Assert.AreEqual(typeof(IFeature[]), ClrFdoTypeMap.GetClrType(PropertyValueType.Feature));
            Assert.AreEqual(typeof(IGeometry), ClrFdoTypeMap.GetClrType(PropertyValueType.Geometry));
            Assert.AreEqual(typeof(short), ClrFdoTypeMap.GetClrType(PropertyValueType.Int16));
            Assert.AreEqual(typeof(int), ClrFdoTypeMap.GetClrType(PropertyValueType.Int32));
            Assert.AreEqual(typeof(long), ClrFdoTypeMap.GetClrType(PropertyValueType.Int64));
            Assert.AreEqual(typeof(float), ClrFdoTypeMap.GetClrType(PropertyValueType.Single));
            Assert.AreEqual(typeof(string), ClrFdoTypeMap.GetClrType(PropertyValueType.String));
        }