public override bool HasPolicy(Guid id, PolicyScenario scenario) { if (scenario == PolicyScenario.Hold) { try { IRecipientSession tenantOrRootOrgRecipientSession = DirectorySessionFactory.Default.GetTenantOrRootOrgRecipientSession(false, ConsistencyMode.PartiallyConsistent, this.RecipientSession.SessionSettings, 327, "HasPolicy", "f:\\15.00.1497\\sources\\dev\\data\\src\\ApplicationLogic\\Compliance\\ExMailboxComplianceItemContainer.cs"); ADRecipient adUser = ExMailboxComplianceItemContainer.GetAdUser(tenantOrRootOrgRecipientSession, this.ExternalDirectoryObjectId, true); string holdId = ExMailboxComplianceItemContainer.GetHoldId(id); return(adUser.InPlaceHolds.Contains(holdId)); } catch (Exception arg) { ExTraceGlobals.StorageTracer.TraceError <string, Exception>(0L, "Failed to find out if mailbox '{0}' has hold. Exception: {1}", this.ExternalDirectoryObjectId, arg); throw; } } throw new NotImplementedException("Scenario is not supported: " + scenario.ToString()); }