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())); } }
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)); }
public override Type GetFieldType(int i) { return(ClrFdoTypeMap.GetClrType(_properties[i].Type)); }
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)); }