Exemple #1
0
        public IDictionary <String, SchemaMetadataDiff> GetAllSchemaMetadataDiffs()
        {
            IDictionary <String, SchemaMetadataDiff> diffs
                = new Dictionary <String, SchemaMetadataDiff>();

            SchemaComparableList <SchemaEntry> baseAtEntries =
                baseEntryFetcher.GetAttributeSchemaEntries();
            SchemaComparableList <SchemaEntry> baseOcEntries =
                baseEntryFetcher.GetClassSchemaEntries();

            foreach (KeyValuePair <String, IEntryFetcher> p in entryFetchers)
            {
                String             serverName = p.Key;
                IEntryFetcher      fetcher    = p.Value;
                SchemaMetadataDiff diff       = null;
                if (fetcher != null)
                {
                    SchemaComparableList <SchemaEntry> otherAtEntries =
                        fetcher.GetAttributeSchemaEntries();
                    SchemaComparableList <SchemaEntry> otherOcEntries =
                        fetcher.GetClassSchemaEntries();

                    diff = new SchemaMetadataDiff(
                        baseAtEntries, baseOcEntries, otherAtEntries, otherOcEntries);
                }
                diffs.Add(serverName, diff);
            }
            return(diffs);
        }
Exemple #2
0
        public SchemaConnection(IEntryFetcherFactory entryFetcherFactory, String baseHost, String upn, String passwd)
        {
            this.entryFetcherFactory = entryFetcherFactory;
            baseEntryFetcher         = entryFetcherFactory.CreateEntryFetcher(baseHost, upn, passwd);
            if (baseEntryFetcher == null)
            {
                throw new SchemaConnectionException("Base server is not reachable");
            }

            entryFetchers = new Dictionary <String, IEntryFetcher>();
            // DseRootEntry dseRootEntry = baseEntryFetcher.GetDseRootEntry();
            // ServerEntry serverEntry = baseEntryFetcher.GetServerEntry(dseRootEntry.serverDn);
            //baseServerName = serverEntry.serverName;
            // RefreshSchemaConnection(upn, passwd);
        }
Exemple #3
0
        public IDictionary <String, SchemaDefinitionDiff> GetAllSchemaDefinitionDiffs()
        {
            IDictionary <String, SchemaDefinitionDiff> diffs =
                new Dictionary <String, SchemaDefinitionDiff>();

            SubSchemaSubEntry baseSubSchema = baseEntryFetcher.GetSubSchemaSubEntry();

            foreach (KeyValuePair <String, IEntryFetcher> p in entryFetchers)
            {
                String               serverName = p.Key;
                IEntryFetcher        fetcher    = p.Value;
                SchemaDefinitionDiff diff       = null;
                if (fetcher != null)
                {
                    SubSchemaSubEntry otherSubSchema = fetcher.GetSubSchemaSubEntry();
                    diff = new SchemaDefinitionDiff(baseSubSchema, otherSubSchema);
                }
                diffs.Add(serverName, diff);
            }
            return(diffs);
        }
Exemple #4
0
        public void RefreshSchemaConnection(String upn, String passwd)
        {
            IList <ServerEntry> serverEntries = baseEntryFetcher.GetServerEntries();

            entryFetchers.Clear();

            Mutex mutex = new Mutex();

            Parallel.ForEach(serverEntries, (e) =>
            {
                if (String.Compare(baseServerName, e.serverName) != 0)
                {
                    IEntryFetcher entryFetcher =
                        entryFetcherFactory.CreateEntryFetcher(
                            e.serverName, upn, passwd);

                    mutex.WaitOne();
                    entryFetchers.Add(e.serverName, entryFetcher);
                    mutex.ReleaseMutex();
                }
            });
        }