示例#1
0
        public static bool isAllowedDatasetFC(string sLayer)
        {
            bool bRetVal = false;

            ESRI.ArcGIS.Geodatabase.IWorkspace pWorkSpace;
            using (CSpatialSubs oSpatialSubs = new CSpatialSubs())
            {
                pWorkSpace = oSpatialSubs.returnEditableSDEWorkspace();
            }

            if (pWorkSpace != null)
            {
                // get the feature classes from each dataset
                IEnumDataset enumFeatureDatasets = pWorkSpace.get_Datasets(esriDatasetType.esriDTFeatureDataset);
                enumFeatureDatasets.Reset();

                IFeatureDataset featureDataset = (IFeatureDataset)enumFeatureDatasets.Next();

                while (featureDataset != null)
                {
                    ISQLPrivilege oDSPriv = (ISQLPrivilege)featureDataset.FullName;
                    int           iDSPriv = oDSPriv.SQLPrivileges;

                    if (iDSPriv > 1)
                    {
                        IFeatureClassContainer fcContainer        = (IFeatureClassContainer)featureDataset;
                        IEnumFeatureClass      enumFeatureClasses = fcContainer.Classes;
                        enumFeatureClasses.Reset();
                        IFeatureClass fc = (IFeatureClass)enumFeatureClasses.Next();
                        while (fc != null)
                        {
                            if (sLayer == fc.AliasName.ToString())
                            {
                                bRetVal = true;
                                break;
                            }

                            fc = (IFeatureClass)enumFeatureClasses.Next();
                        }
                    }
                    featureDataset = (IFeatureDataset)enumFeatureDatasets.Next();
                }
            }
            return(bRetVal);
        }
示例#2
0
        public static bool isAllowedStandaloneFC(string sLayer)
        {
            bool bRetVal = false;

            ESRI.ArcGIS.Geodatabase.IWorkspace pWorkSpace;

            using (CSpatialSubs oSpatialSubs = new CSpatialSubs())
            {
                pWorkSpace = oSpatialSubs.returnEditableSDEWorkspace();
            }

            if (pWorkSpace != null)
            {
                IEnumDataset enumFC = pWorkSpace.get_Datasets(esriDatasetType.esriDTFeatureClass);
                enumFC.Reset();

                IFeatureClass fc = (IFeatureClass)enumFC.Next();

                while (fc != null)
                {
                    IDataset      ds      = fc as IDataset;
                    ISQLPrivilege oFCPriv = (ISQLPrivilege)ds.FullName;

                    int iFCPriv = oFCPriv.SQLPrivileges;

                    if (iFCPriv > 1)
                    {
                        if (sLayer == fc.AliasName.ToString())
                        {
                            bRetVal = true;
                            break;
                        }

                        fc = (IFeatureClass)enumFC.Next();
                    }
                }
            }
            return(bRetVal);
        }