// Token: 0x060008F9 RID: 2297 RVA: 0x0003CB40 File Offset: 0x0003AD40 internal void UpdateAllUserSettings(long cookie, Initiating.ActOnUserSettingsDelegate updateUserSettings, Predicate <ADRawEntry> validate) { if (!VariantConfiguration.InvariantNoFlightingSnapshot.MailboxAssistants.CalendarNotificationAssistantSkipUserSettingsUpdate.Enabled) { ADSessionSettings sessionSettings = ADSessionSettings.FromRootOrgScopeSet(); IRecipientSession recipientSession = DirectorySessionFactory.Default.CreateRootOrgRecipientSession(false, ConsistencyMode.IgnoreInvalid, sessionSettings, 664, "UpdateAllUserSettings", "f:\\15.00.1497\\sources\\dev\\MailboxAssistants\\src\\assistants\\CalendarNotification\\Actions.cs"); this.UpdateAllUserSettings(recipientSession, cookie, updateUserSettings, validate); } }
// Token: 0x060008FA RID: 2298 RVA: 0x0003CBC0 File Offset: 0x0003ADC0 internal void UpdateAllUserSettings(IRecipientSession recipientSession, long cookie, Initiating.ActOnUserSettingsDelegate updateUserSettings, Predicate <ADRawEntry> validate) { QueryFilter filter = new AndFilter(new QueryFilter[] { new ComparisonFilter(ComparisonOperator.Equal, ADMailboxRecipientSchema.Database, new ADObjectId(base.Context.Guid)), new ComparisonFilter(ComparisonOperator.Equal, ADRecipientSchema.RecipientType, RecipientType.UserMailbox) }); ADPagedReader <ADRawEntry> adpagedReader = recipientSession.FindPagedADRawEntry(null, QueryScope.SubTree, filter, null, 0, new PropertyDefinition[] { ADObjectSchema.Id, ADRecipientSchema.TextMessagingState, IADMailStorageSchema.ExchangeGuid }); using (IEnumerator <ADRawEntry> enumerator = adpagedReader.GetEnumerator()) { while (enumerator.MoveNext()) { ADRawEntry recipient = enumerator.Current; if (!base.ShouldContinue(cookie)) { break; } if (validate == null || validate(recipient)) { if (this.mailboxTable == null) { this.mailboxTable = base.Context.GetMailboxTable(ClientType.EventBased, new PropertyTagPropertyDefinition[0]); } if (!this.mailboxTable.Exists((MailboxInformation mbxInfo) => mbxInfo.MailboxGuid == (Guid)recipient[IADMailStorageSchema.ExchangeGuid])) { ADUser aduser = recipientSession.FindADUserByObjectId((ADObjectId)recipient[ADObjectSchema.Id]); if (aduser != null) { ExchangePrincipal exchangePrincipal = ExchangePrincipal.FromADUser(aduser, null); MailboxSession mailboxSession = null; try { mailboxSession = base.Context.GetMailbox(exchangePrincipal, ClientType.EventBased, "UpdateAllUserSettings"); if (!base.ShouldContinue(cookie)) { break; } updateUserSettings(mailboxSession, recipientSession, aduser); } catch (NotSupportedException arg) { ExTraceGlobals.AssistantTracer.TraceError <string, NotSupportedException>((long)this.GetHashCode(), "Exception is caught during syncing text messaging settings to AD user object for {0}: {1}", exchangePrincipal.LegacyDn, arg); } catch (Exception ex) { if (!CalendarNotificationAssistant.TryHandleException((long)this.GetHashCode(), "Update all user's settings", exchangePrincipal.LegacyDn, ex)) { throw; } } finally { if (mailboxSession != null) { mailboxSession.Dispose(); mailboxSession = null; } } } } } } } }