public ActiveDirectorySiteLink(DirectoryContext context, string siteLinkName, ActiveDirectoryTransportType transport, ActiveDirectorySchedule schedule)
        {
            DirectoryEntry directoryEntry;

            this.systemDefaultInterval = new TimeSpan(0, 15, 0);
            this.sites = new ActiveDirectorySiteCollection();
            ValidateArgument(context, siteLinkName, transport);
            context        = new DirectoryContext(context);
            this.context   = context;
            this.name      = siteLinkName;
            this.transport = transport;
            try
            {
                directoryEntry = DirectoryEntryManager.GetDirectoryEntry(context, WellKnownDN.RootDSE);
                string str = (string)PropertyManager.GetPropertyValue(context, directoryEntry, PropertyManager.ConfigurationNamingContext);
                string dn  = null;
                if (transport == ActiveDirectoryTransportType.Rpc)
                {
                    dn = "CN=IP,CN=Inter-Site Transports,CN=Sites," + str;
                }
                else
                {
                    dn = "CN=SMTP,CN=Inter-Site Transports,CN=Sites," + str;
                }
                directoryEntry = DirectoryEntryManager.GetDirectoryEntry(context, dn);
            }
            catch (COMException exception)
            {
                throw ExceptionHelper.GetExceptionFromCOMException(context, exception);
            }
            catch (ActiveDirectoryObjectNotFoundException)
            {
                throw new ActiveDirectoryOperationException(Res.GetString("ADAMInstanceNotFoundInConfigSet", new object[] { context.Name }));
            }
            try
            {
                string escapedPath = Utils.GetEscapedPath("cn=" + this.name);
                this.cachedEntry = directoryEntry.Children.Add(escapedPath, "siteLink");
                this.cachedEntry.Properties["cost"].Value         = 100;
                this.cachedEntry.Properties["replInterval"].Value = 180;
                if (schedule != null)
                {
                    this.cachedEntry.Properties["schedule"].Value = schedule.GetUnmanagedSchedule();
                }
            }
            catch (COMException exception2)
            {
                if (((exception2.ErrorCode == -2147016656) && Utils.CheckCapability(DirectoryEntryManager.GetDirectoryEntry(context, WellKnownDN.RootDSE), Capability.ActiveDirectoryApplicationMode)) && (transport == ActiveDirectoryTransportType.Smtp))
                {
                    throw new NotSupportedException(Res.GetString("NotSupportTransportSMTP"));
                }
                throw ExceptionHelper.GetExceptionFromCOMException(context, exception2);
            }
            finally
            {
                directoryEntry.Dispose();
            }
        }
 public ActiveDirectorySiteLink(DirectoryContext context, string siteLinkName, ActiveDirectoryTransportType transport, ActiveDirectorySchedule schedule)
 {
     DirectoryEntry directoryEntry;
     this.systemDefaultInterval = new TimeSpan(0, 15, 0);
     this.sites = new ActiveDirectorySiteCollection();
     ValidateArgument(context, siteLinkName, transport);
     context = new DirectoryContext(context);
     this.context = context;
     this.name = siteLinkName;
     this.transport = transport;
     try
     {
         directoryEntry = DirectoryEntryManager.GetDirectoryEntry(context, WellKnownDN.RootDSE);
         string str = (string) PropertyManager.GetPropertyValue(context, directoryEntry, PropertyManager.ConfigurationNamingContext);
         string dn = null;
         if (transport == ActiveDirectoryTransportType.Rpc)
         {
             dn = "CN=IP,CN=Inter-Site Transports,CN=Sites," + str;
         }
         else
         {
             dn = "CN=SMTP,CN=Inter-Site Transports,CN=Sites," + str;
         }
         directoryEntry = DirectoryEntryManager.GetDirectoryEntry(context, dn);
     }
     catch (COMException exception)
     {
         throw ExceptionHelper.GetExceptionFromCOMException(context, exception);
     }
     catch (ActiveDirectoryObjectNotFoundException)
     {
         throw new ActiveDirectoryOperationException(Res.GetString("ADAMInstanceNotFoundInConfigSet", new object[] { context.Name }));
     }
     try
     {
         string escapedPath = Utils.GetEscapedPath("cn=" + this.name);
         this.cachedEntry = directoryEntry.Children.Add(escapedPath, "siteLink");
         this.cachedEntry.Properties["cost"].Value = 100;
         this.cachedEntry.Properties["replInterval"].Value = 180;
         if (schedule != null)
         {
             this.cachedEntry.Properties["schedule"].Value = schedule.GetUnmanagedSchedule();
         }
     }
     catch (COMException exception2)
     {
         if (((exception2.ErrorCode == -2147016656) && Utils.CheckCapability(DirectoryEntryManager.GetDirectoryEntry(context, WellKnownDN.RootDSE), Capability.ActiveDirectoryApplicationMode)) && (transport == ActiveDirectoryTransportType.Smtp))
         {
             throw new NotSupportedException(Res.GetString("NotSupportTransportSMTP"));
         }
         throw ExceptionHelper.GetExceptionFromCOMException(context, exception2);
     }
     finally
     {
         directoryEntry.Dispose();
     }
 }
        public void AddRange(ActiveDirectorySiteCollection sites)
        {
            if (sites == null)
                throw new ArgumentNullException("sites");

            int count = sites.Count;
            for (int i = 0; i < count; i++)
                this.Add(sites[i]);
        }
 internal ActiveDirectorySiteLink(DirectoryContext context, string siteLinkName, ActiveDirectoryTransportType transport, bool existing, DirectoryEntry entry)
 {
     this.systemDefaultInterval = new TimeSpan(0, 15, 0);
     this.sites       = new ActiveDirectorySiteCollection();
     this.context     = context;
     this.name        = siteLinkName;
     this.transport   = transport;
     this.existing    = existing;
     this.cachedEntry = entry;
 }
        public void AddRange(ActiveDirectorySiteCollection sites)
        {
            if (sites == null)
            {
                throw new ArgumentNullException("sites");
            }
            int count = sites.Count;

            for (int i = 0; i < count; i++)
            {
                this.Add(sites[i]);
            }
        }
 internal ActiveDirectorySiteLink(DirectoryContext context, string siteLinkName, ActiveDirectoryTransportType transport, bool existing, DirectoryEntry entry)
 {
     this.systemDefaultInterval = new TimeSpan(0, 15, 0);
     this.sites = new ActiveDirectorySiteCollection();
     this.context = context;
     this.name = siteLinkName;
     this.transport = transport;
     this.existing = existing;
     this.cachedEntry = entry;
 }
 public void AddRange(ActiveDirectorySiteCollection sites)
 {
     throw new NotImplementedException();
 }
 public void AddRange(ActiveDirectorySiteCollection sites)
 {
     Contract.Requires(sites != null);
 }
 public void AddRange(ActiveDirectorySiteCollection sites)
 {
   Contract.Requires(sites != null);
 }
		public void AddRange (ActiveDirectorySiteCollection sites)
		{
			throw new NotImplementedException ();
		}