public DatabaseGuidRoutingLookup(IDatabaseLocationProvider databaseLocationProvider) { if (databaseLocationProvider == null) { throw new ArgumentNullException("databaseLocationProvider"); } this.databaseLocationProvider = databaseLocationProvider; }
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; }
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); }
public void SetDatabaseLocationProvider(IDatabaseLocationProvider databaseLocationProvider) { ArgumentValidator.ThrowIfNull("databaseLocationProvider", databaseLocationProvider); this.databaseLocationProvider = databaseLocationProvider; }