private static ExchangePrincipal GetArchiveExchangePrincipalInternal(ExchangePrincipal exchangePrincipal, RemotingOptions?remotingOptions) { if (exchangePrincipal.MailboxInfo.IsAggregated) { throw new InvalidOperationException("Cannot get archive mailbox of an aggregated ExchangePrincipal"); } if (exchangePrincipal.MailboxInfo.IsArchive) { throw new InvalidOperationException("Cannot get archive mailbox of an archive ExchangePrincipal"); } return(ExchangePrincipalExtensions.CloneExchangePrincipal(exchangePrincipal, true, null, remotingOptions)); }
public static ExchangePrincipal GetAggregatedExchangePrincipal(this ExchangePrincipal exchangePrincipal, Guid aggregatedMailboxGuid) { if (exchangePrincipal.MailboxInfo.IsAggregated) { throw new InvalidOperationException("Cannot get aggregated mailbox of an aggregated ExchangePrincipal"); } if (exchangePrincipal.MailboxInfo.IsArchive) { throw new InvalidOperationException("Cannot get aggregated mailbox of an archive ExchangePrincipal"); } if (exchangePrincipal.AggregatedMailboxGuids.All((Guid mailboxGuid) => aggregatedMailboxGuid != mailboxGuid)) { throw new InvalidOperationException("Invalid aggregated mailbox Guid used"); } return(ExchangePrincipalExtensions.CloneExchangePrincipal(exchangePrincipal, false, new Guid?(aggregatedMailboxGuid), null)); }
public static ExchangePrincipal GetArchiveExchangePrincipal(this ExchangePrincipal exchangePrincipal, RemotingOptions remotingOptions) { EnumValidator.ThrowIfInvalid <RemotingOptions>(remotingOptions, "remotingOptions"); return(ExchangePrincipalExtensions.GetArchiveExchangePrincipalInternal(exchangePrincipal, new RemotingOptions?(remotingOptions))); }
public static ExchangePrincipal GetArchiveExchangePrincipal(this ExchangePrincipal exchangePrincipal) { return(ExchangePrincipalExtensions.GetArchiveExchangePrincipalInternal(exchangePrincipal, null)); }