コード例 #1
0
ファイル: SchemaConnection.cs プロジェクト: wfu8/lightwave
        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);
        }
コード例 #2
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();
                }
            });
        }