Example #1
0
 public DatabaseGuidRoutingLookup(IDatabaseLocationProvider databaseLocationProvider)
 {
     if (databaseLocationProvider == null)
     {
         throw new ArgumentNullException("databaseLocationProvider");
     }
     this.databaseLocationProvider = databaseLocationProvider;
 }
Example #2
0
 public RoutingEntryLookupFactory(IDatabaseLocationProvider databaseLocationProvider, IUserProvider userProvider)
 {
     if (databaseLocationProvider == null)
     {
         throw new ArgumentNullException("databaseLocationProvider");
     }
     if (userProvider == null)
     {
         throw new ArgumentNullException("userProvider");
     }
     this.databaseLocationProvider = databaseLocationProvider;
     this.userProvider             = userProvider;
 }
Example #3
0
        private IMailboxLocation BuildMailboxLocation(IDatabaseLocationProvider databaseLocationProvider, ADObjectId databaseId, RemotingOptions remotingOptions)
        {
            if (databaseId.IsNullOrEmpty())
            {
                return(MailboxDatabaseLocation.Unknown);
            }
            Func <IMailboxLocation> func = () => new MailboxDatabaseLocation(databaseLocationProvider.GetLocationInfo(databaseId.ObjectGuid, false, (remotingOptions & RemotingOptions.AllowCrossSite) == RemotingOptions.AllowCrossSite));

            if (this.useOnDemandLocation)
            {
                return(new OnDemandMailboxLocation(func));
            }
            return(func());
        }
        private ExchangePrincipal CreateExchangePrincipal(IGenericADUser user, ADObjectId mdb, IMailboxLocation mailboxLocation, RemotingOptions remotingOptions, bool asArchive, Guid?aggregatedMailboxGuid, IDatabaseLocationProvider databaseLocationProvider, bool isContentIndexing = false)
        {
            ExchangePrincipalBuilder exchangePrincipalBuilder = ((remotingOptions & RemotingOptions.AllowHybridAccess) == RemotingOptions.AllowHybridAccess) ? new RemoteUserMailboxPrincipalBuilder(user) : this.GetExchangePrincipalBuilder(user);

            exchangePrincipalBuilder.SetRemotingOptions(remotingOptions);
            exchangePrincipalBuilder.SetDatabaseLocationProvider(databaseLocationProvider);
            if (!mdb.IsNullOrEmpty())
            {
                exchangePrincipalBuilder.SetSelectedMailboxDatabase(mdb.ObjectGuid);
            }
            if (mailboxLocation != null)
            {
                exchangePrincipalBuilder.SetSelectedMailboxLocation(mailboxLocation);
            }
            if (asArchive)
            {
                exchangePrincipalBuilder.SelectArchiveMailbox();
            }
            exchangePrincipalBuilder.BypassRecipientTypeValidation(isContentIndexing);
            if (aggregatedMailboxGuid != null && aggregatedMailboxGuid != Guid.Empty)
            {
                exchangePrincipalBuilder.SelectMailbox(aggregatedMailboxGuid.Value);
            }
            return(exchangePrincipalBuilder.Build());
        }
 public ExchangePrincipalFactory(IDirectoryAccessor directoryAccessor, IDatabaseLocationProvider databaseLocationProvider)
 {
     this.directoryAccessor        = directoryAccessor;
     this.databaseLocationProvider = databaseLocationProvider;
 }
 public static void SetDatabaseLocationProviderForTest(IDatabaseLocationProvider databaseLocationProvider)
 {
     ExchangePrincipal.databaseLocationProvider = databaseLocationProvider;
     ExchangePrincipal.SetFactory(null);
 }
Example #7
0
 public void SetDatabaseLocationProvider(IDatabaseLocationProvider databaseLocationProvider)
 {
     ArgumentValidator.ThrowIfNull("databaseLocationProvider", databaseLocationProvider);
     this.databaseLocationProvider = databaseLocationProvider;
 }