public static IOrganizationSettingsData GetOrganizationSettingsData(OrganizationId organizationId, IAirSyncContext context) { if (organizationId == null) { throw new ArgumentException("OrganizationId is null"); } if (!ADNotificationManager.started) { throw new InvalidOperationException("ADNotificationManager should be started first!"); } IConfigurationSession scopedSession = null; ADObjectId configurationUnit = organizationId.ConfigurationUnit; if (configurationUnit == null) { if (ADNotificationManager.enterpriseConfigurationID == null) { scopedSession = ADNotificationManager.CreateScopedADSession(organizationId, ConsistencyMode.IgnoreInvalid); ADNotificationManager.enterpriseConfigurationID = scopedSession.GetOrgContainerId(); if (context != null) { context.ProtocolLogger.SetValue(ProtocolLoggerData.DomainController, scopedSession.LastUsedDc); } } configurationUnit = ADNotificationManager.enterpriseConfigurationID; } ADNotificationManager.ADSettingsInfo <IOrganizationSettingsData> adsettingsInfo = null; AirSyncDiagnostics.TraceDebug <ADObjectId>(ExTraceGlobals.RequestsTracer, null, "Loaded ConfigurationUnit {0}", configurationUnit); Func <IOrganizationSettingsData> loadDataAction = () => ADNotificationManager.LoadOrganizationSettings(scopedSession ?? ADNotificationManager.CreateScopedADSession(organizationId, ConsistencyMode.PartiallyConsistent), context); ADNotificationManager.LoadADSettingsData <IOrganizationSettingsData>(ADNotificationManager.organizationSettingsCache, configurationUnit.DistinguishedName, loadDataAction, organizationId.PartitionId, out adsettingsInfo); return(adsettingsInfo.ADSettingsData); }
private static PolicyData GetDefaultPolicySetting(IAirSyncUser user) { ADObjectId configurationUnit = user.ADUser.ConfigurationUnit; if (configurationUnit == null) { if (ADNotificationManager.enterpriseConfigurationID == null) { IConfigurationSession configurationSession = ADNotificationManager.CreateScopedADSession(user); ADNotificationManager.enterpriseConfigurationID = configurationSession.GetOrgContainerId(); user.Context.ProtocolLogger.SetValue(ProtocolLoggerData.DomainController, configurationSession.LastUsedDc); } configurationUnit = ADNotificationManager.enterpriseConfigurationID; } Func <PolicyData> loadDataAction = () => ADNotificationManager.LoadDefaultPolicySetting(ADNotificationManager.CreateScopedADSession(user), user.Context.ProtocolLogger); ADNotificationManager.ADSettingsInfo <PolicyData> adsettingsInfo; bool flag = ADNotificationManager.LoadADSettingsData <PolicyData>(ADNotificationManager.policies, configurationUnit.DistinguishedName, loadDataAction, user.OrganizationId.PartitionId, out adsettingsInfo); if (flag && adsettingsInfo.ADSettingsData == null) { AirSyncDiagnostics.TraceDebug <string>(ExTraceGlobals.RequestsTracer, null, "Default PolicySettings not found. Save null in cache.Policy DN {0}", configurationUnit.DistinguishedName); ADNotificationManager.policies.Add(configurationUnit.DistinguishedName, new ADNotificationManager.ADSettingsInfo <PolicyData>(user.OrganizationId.PartitionId, null, ExDateTime.UtcNow)); } AirSyncDiagnostics.TraceDebug <string>(ExTraceGlobals.RequestsTracer, null, "Returning Default PolicySettings data. DN {0}", configurationUnit.DistinguishedName); return(adsettingsInfo.ADSettingsData); }
private static PolicyData GetPolicySetting(IAirSyncUser user) { ADObjectId policyId = user.ADUser.ActiveSyncMailboxPolicy; AirSyncDiagnostics.TraceDebug <string>(ExTraceGlobals.RequestsTracer, null, "Loading user PolicySettings data.Policy DN {0}", policyId.DistinguishedName); Func <PolicyData> loadDataAction = () => ADNotificationManager.LoadPolicySetting(ADNotificationManager.CreateScopedADSession(user), user, policyId, true); ADNotificationManager.ADSettingsInfo <PolicyData> adsettingsInfo; ADNotificationManager.LoadADSettingsData <PolicyData>(ADNotificationManager.policies, policyId.DistinguishedName, loadDataAction, user.OrganizationId.PartitionId, out adsettingsInfo); return(adsettingsInfo.ADSettingsData); }
private static IConfigurationSession CreateScopedADSession(IAirSyncUser user) { return(ADNotificationManager.CreateScopedADSession(user.ADUser.OrganizationId, ConsistencyMode.IgnoreInvalid)); }