Example #1
0
        private IFeatureClass method_1(string string_0, int int_0, IntPtr intptr_0,
                                       IFeatureWorkspace ifeatureWorkspace_0, out bool bool_0)
        {
            IEnumFieldError enumFieldError;
            IFields         field;
            IFeatureClass   featureClass;

            bool_0 = false;
            try
            {
                IFeatureClass            featureClass1                = null;
                string                   fileNameWithoutExtension     = System.IO.Path.GetFileNameWithoutExtension(string_0);
                IFeatureClassDescription featureClassDescriptionClass =
                    new FeatureClassDescription() as IFeatureClassDescription;
                string  shapeFieldName = featureClassDescriptionClass.ShapeFieldName;
                IFields requiredFields = (featureClassDescriptionClass as IObjectClassDescription).RequiredFields;
                this.AddTabField(requiredFields as IFieldsEdit, intptr_0);
                this.AddTabField(int_0, requiredFields as IFieldsEdit);
                IFields       field1            = requiredFields;
                IFieldChecker fieldCheckerClass = new FieldChecker()
                {
                    ValidateWorkspace = ifeatureWorkspace_0 as IWorkspace
                };
                fieldCheckerClass.Validate(field1, out enumFieldError, out field);
                IFieldEdit       fieldEdit   = field.Field[field.FindField(shapeFieldName)] as IFieldEdit;
                IGeometryDefEdit geometryDef = fieldEdit.GeometryDef as IGeometryDefEdit;
                if (this.ispatialReference_0 == null)
                {
                    string str = TabRead._mitab_c_get_coordsys_xml(intptr_0);
                    if (str == null)
                    {
                        this.ispatialReference_0 = geometryDef.SpatialReference;
                    }
                    else if (str.Length <= 0)
                    {
                        this.ispatialReference_0 = geometryDef.SpatialReference;
                    }
                    else
                    {
                        string       str1         = string.Concat(System.IO.Path.GetTempPath(), "\\temp.prj");
                        StreamWriter streamWriter = new StreamWriter(str1);
                        try
                        {
                            streamWriter.Write(str);
                        }
                        finally
                        {
                            if (streamWriter != null)
                            {
                                ((IDisposable)streamWriter).Dispose();
                            }
                        }
                        try
                        {
                            this.ispatialReference_0 =
                                (new SpatialReferenceEnvironment()).CreateESRISpatialReferenceFromPRJFile(str1);
                        }
                        catch
                        {
                            this.ispatialReference_0 = geometryDef.SpatialReference;
                        }
                        try
                        {
                            File.Delete(str1);
                        }
                        catch
                        {
                        }
                    }
                    double num  = 0;
                    double num1 = 0;
                    double num2 = 0;
                    double num3 = 0;
                    TabRead._mitab_c_get_mif_bounds(intptr_0, ref num, ref num1, ref num2, ref num3);
                    SpatialReferenctOperator.ChangeCoordinateSystem(ifeatureWorkspace_0 as IGeodatabaseRelease,
                                                                    this.ispatialReference_0, false);
                    num  = num - 10;
                    num1 = num1 + 10;
                    num2 = num2 - 10;
                    num3 = num3 + 10;
                    this.ispatialReference_0.SetDomain(num, num1, num2, num3);
                }
                geometryDef.SpatialReference_2 = this.ispatialReference_0;
                TabRead._mitab_c_get_feature_count_bytype(intptr_0, int_0);
                switch (int_0)
                {
                case 1:
                case 2:
                case 3:
                {
                    fileNameWithoutExtension = string.Concat(fileNameWithoutExtension, "_Point");
                    fileNameWithoutExtension = this.method_0(ifeatureWorkspace_0 as IWorkspace,
                                                             fileNameWithoutExtension);
                    geometryDef.GeometryType_2 = esriGeometryType.esriGeometryPoint;
                    fieldEdit.GeometryDef_2    = geometryDef;
                    featureClass1 = ifeatureWorkspace_0.CreateFeatureClass(fileNameWithoutExtension, field, null,
                                                                           null, esriFeatureType.esriFTSimple, shapeFieldName, "");
                    break;
                }

                case 4:
                {
                    fileNameWithoutExtension = string.Concat(fileNameWithoutExtension, "_Anno_Point");
                    fileNameWithoutExtension = this.method_0(ifeatureWorkspace_0 as IWorkspace,
                                                             fileNameWithoutExtension);
                    geometryDef.GeometryType_2 = esriGeometryType.esriGeometryPoint;
                    fieldEdit.GeometryDef_2    = geometryDef;
                    featureClass1 = ifeatureWorkspace_0.CreateFeatureClass(fileNameWithoutExtension, field, null,
                                                                           null, esriFeatureType.esriFTSimple, shapeFieldName, "");
                    break;
                }

                case 5:
                case 6:
                {
                    fileNameWithoutExtension = string.Concat(fileNameWithoutExtension, "_Line");
                    fileNameWithoutExtension = this.method_0(ifeatureWorkspace_0 as IWorkspace,
                                                             fileNameWithoutExtension);
                    geometryDef.GeometryType_2 = esriGeometryType.esriGeometryPolyline;
                    fieldEdit.GeometryDef_2    = geometryDef;
                    featureClass1 = ifeatureWorkspace_0.CreateFeatureClass(fileNameWithoutExtension, field, null,
                                                                           null, esriFeatureType.esriFTSimple, shapeFieldName, "");
                    break;
                }

                case 7:
                {
                    fileNameWithoutExtension = string.Concat(fileNameWithoutExtension, "_Polygon");
                    fileNameWithoutExtension = this.method_0(ifeatureWorkspace_0 as IWorkspace,
                                                             fileNameWithoutExtension);
                    geometryDef.GeometryType_2 = esriGeometryType.esriGeometryPolygon;
                    fieldEdit.GeometryDef_2    = geometryDef;
                    featureClass1 = ifeatureWorkspace_0.CreateFeatureClass(fileNameWithoutExtension, field, null,
                                                                           null, esriFeatureType.esriFTSimple, shapeFieldName, "");
                    break;
                }

                case 8:
                case 9:
                {
                    featureClass = null;
                    return(featureClass);
                }

                case 10:
                {
                    fileNameWithoutExtension = string.Concat(fileNameWithoutExtension, "_MultiPoint");
                    fileNameWithoutExtension = this.method_0(ifeatureWorkspace_0 as IWorkspace,
                                                             fileNameWithoutExtension);
                    geometryDef.GeometryType_2 = esriGeometryType.esriGeometryMultipoint;
                    fieldEdit.GeometryDef_2    = geometryDef;
                    featureClass1 = ifeatureWorkspace_0.CreateFeatureClass(fileNameWithoutExtension, field, null,
                                                                           null, esriFeatureType.esriFTSimple, shapeFieldName, "");
                    break;
                }

                default:
                {
                    featureClass = null;
                    return(featureClass);
                }
                }
                featureClass = featureClass1;
                return(featureClass);
            }
            catch (Exception exception)
            {
                Logger.Current.Error("", exception, "");
                bool_0 = true;
            }
            featureClass = null;
            return(featureClass);
        }