// TODO: Internal? // TODO: ISchema public DirectorySchema(IsamDatabase database) { TableDefinition dataTable = database.Tables[ADConstants.DataTableName]; this.LoadColumnList(dataTable.Columns); this.LoadAttributeIndices(dataTable.Indices); using (var cursor = database.OpenCursor(ADConstants.DataTableName)) { this.LoadClassList(cursor); this.LoadAttributeProperties(cursor); this.LoadPrefixMap(cursor); } // TODO: Load Ext-Int Map from hiddentable }
public LinkResolver(IsamDatabase database, DirectorySchema schema) { this.schema = schema; this.cursor = database.OpenCursor(ADConstants.LinkTableName); if (this.cursor.TableDefinition.Indices.Contains(linkIndex2008)) { this.cursor.SetCurrentIndex(linkIndex2008); } else { // Fallback to the old index if the newer one does not exist cursor.SetCurrentIndex(linkIndex2003); } // TODO: Load column ids instead of names }
public SecurityDescriptorRersolver(IsamDatabase database) { this.cursor = database.OpenCursor(ADConstants.SecurityDescriptorTableName); this.cursor.SetCurrentIndex(SdIndex); }
public DistinguishedNameResolver(IsamDatabase database, DirectorySchema schema) { this.dnCache = new Dictionary<int, string>(); this.schema = schema; this.cursor = database.OpenCursor(ADConstants.DataTableName); }