private static Dictionary <RecipientTypeDetails, QueryFilter> InitializeStaticRecipientTypeDetailsFilterOptimizations() { Dictionary <RecipientTypeDetails, QueryFilter> dictionary = new Dictionary <RecipientTypeDetails, QueryFilter>(32); RecipientTypeDetails key = RecipientTypeDetails.UserMailbox | RecipientTypeDetails.LinkedMailbox | RecipientTypeDetails.SharedMailbox | RecipientTypeDetails.LegacyMailbox | RecipientTypeDetails.RoomMailbox | RecipientTypeDetails.EquipmentMailbox | RecipientTypeDetails.MailContact | RecipientTypeDetails.MailUser | RecipientTypeDetails.MailUniversalDistributionGroup | RecipientTypeDetails.MailUniversalSecurityGroup | RecipientTypeDetails.DynamicDistributionGroup | RecipientTypeDetails.MailForestContact | RecipientTypeDetails.RoomList | RecipientTypeDetails.DiscoveryMailbox | RecipientTypeDetails.RemoteUserMailbox | RecipientTypeDetails.RemoteRoomMailbox | RecipientTypeDetails.RemoteEquipmentMailbox | RecipientTypeDetails.RemoteSharedMailbox | RecipientTypeDetails.TeamMailbox | RecipientTypeDetails.RemoteTeamMailbox | RecipientTypeDetails.GroupMailbox | RecipientTypeDetails.LinkedRoomMailbox | RecipientTypeDetails.RemoteGroupMailbox; dictionary.Add(key, new AndFilter(new QueryFilter[] { Filters.AllMailableUsersContactsDDLsUniversalGroupsFilter, new NotFilter(Filters.CreateRecipientTypeDetailsValueFilter(RecipientTypeDetails.ArbitrationMailbox)), new NotFilter(Filters.CreateRecipientTypeDetailsValueFilter(RecipientTypeDetails.AuditLogMailbox)), new NotFilter(Filters.CreateRecipientTypeDetailsValueFilter(RecipientTypeDetails.MailboxPlan)) })); dictionary.Add(RecipientTypeDetails.User | RecipientTypeDetails.DisabledUser, new AndFilter(new QueryFilter[] { Filters.CreateRecipientTypeFilter(RecipientType.User), new NotFilter(Filters.CreateRecipientTypeDetailsValueFilter(RecipientTypeDetails.LinkedUser)) })); dictionary.Add(RecipientTypeDetails.UniversalDistributionGroup | RecipientTypeDetails.UniversalSecurityGroup, new AndFilter(new QueryFilter[] { Filters.CreateRecipientTypeFilter(RecipientType.Group), new NotFilter(Filters.CreateRecipientTypeDetailsValueFilter(RecipientTypeDetails.RoleGroup)), Filters.CreateUniversalGroupFilter(true) })); dictionary.Add(RecipientTypeDetails.MailContact | RecipientTypeDetails.MailForestContact, new AndFilter(new QueryFilter[] { Filters.CreateRecipientTypeFilter(RecipientType.MailContact) })); key = (RecipientTypeDetails.UserMailbox | RecipientTypeDetails.LinkedMailbox | RecipientTypeDetails.SharedMailbox | RecipientTypeDetails.LegacyMailbox | RecipientTypeDetails.RoomMailbox | RecipientTypeDetails.EquipmentMailbox | RecipientTypeDetails.MailUser | RecipientTypeDetails.User | RecipientTypeDetails.DisabledUser | RecipientTypeDetails.RemoteUserMailbox | RecipientTypeDetails.RemoteRoomMailbox | RecipientTypeDetails.RemoteEquipmentMailbox | RecipientTypeDetails.RemoteSharedMailbox | RecipientTypeDetails.TeamMailbox | RecipientTypeDetails.RemoteTeamMailbox); dictionary.Add(key, new OrFilter(new QueryFilter[] { new AndFilter(new QueryFilter[] { ADUser.ImplicitFilterInternal, new NotFilter(new ExistsFilter(ADRecipientSchema.RecipientTypeDetailsValue)) }), new AndFilter(new QueryFilter[] { ADUser.ImplicitFilterInternal, new NotFilter(Filters.CreateRecipientTypeDetailsValueFilter(RecipientTypeDetails.DiscoveryMailbox)), new NotFilter(Filters.CreateRecipientTypeDetailsValueFilter(RecipientTypeDetails.LinkedUser)) }) })); key = (RecipientTypeDetails.UserMailbox | RecipientTypeDetails.LinkedMailbox | RecipientTypeDetails.SharedMailbox | RecipientTypeDetails.LegacyMailbox | RecipientTypeDetails.RoomMailbox | RecipientTypeDetails.EquipmentMailbox | RecipientTypeDetails.MailContact | RecipientTypeDetails.MailUser | RecipientTypeDetails.MailUniversalDistributionGroup | RecipientTypeDetails.MailNonUniversalGroup | RecipientTypeDetails.MailUniversalSecurityGroup | RecipientTypeDetails.DynamicDistributionGroup | RecipientTypeDetails.PublicFolder | RecipientTypeDetails.MailForestContact | RecipientTypeDetails.RoomList | RecipientTypeDetails.DiscoveryMailbox | RecipientTypeDetails.RemoteUserMailbox | RecipientTypeDetails.RemoteRoomMailbox | RecipientTypeDetails.RemoteEquipmentMailbox | RecipientTypeDetails.RemoteSharedMailbox | RecipientTypeDetails.TeamMailbox | RecipientTypeDetails.RemoteTeamMailbox | RecipientTypeDetails.LinkedRoomMailbox); dictionary.Add(key, Filters.AllRecipientsForGetRecipientTask); key = (RecipientTypeDetails.UserMailbox | RecipientTypeDetails.LinkedMailbox | RecipientTypeDetails.SharedMailbox | RecipientTypeDetails.LegacyMailbox | RecipientTypeDetails.RoomMailbox | RecipientTypeDetails.EquipmentMailbox | RecipientTypeDetails.DiscoveryMailbox | RecipientTypeDetails.TeamMailbox | RecipientTypeDetails.GroupMailbox | RecipientTypeDetails.LinkedRoomMailbox); dictionary.Add(key, new AndFilter(new QueryFilter[] { Filters.CreateRecipientTypeFilter(RecipientType.UserMailbox), new NotFilter(Filters.CreateRecipientTypeDetailsValueFilter(RecipientTypeDetails.ArbitrationMailbox)), new NotFilter(Filters.CreateRecipientTypeDetailsValueFilter(RecipientTypeDetails.AuditLogMailbox)), new NotFilter(Filters.CreateRecipientTypeDetailsValueFilter(RecipientTypeDetails.MailboxPlan)) })); key = (RecipientTypeDetails.MailUniversalDistributionGroup | RecipientTypeDetails.MailNonUniversalGroup | RecipientTypeDetails.MailUniversalSecurityGroup | RecipientTypeDetails.RoomList); dictionary.Add(key, new OrFilter(new QueryFilter[] { Filters.CreateRecipientTypeFilter(RecipientType.MailNonUniversalGroup), Filters.CreateRecipientTypeFilter(RecipientType.MailUniversalDistributionGroup), Filters.CreateRecipientTypeFilter(RecipientType.MailUniversalSecurityGroup) })); key = (RecipientTypeDetails.MailUniversalDistributionGroup | RecipientTypeDetails.MailNonUniversalGroup | RecipientTypeDetails.MailUniversalSecurityGroup); dictionary.Add(key, new AndFilter(new QueryFilter[] { new OrFilter(new QueryFilter[] { Filters.CreateRecipientTypeFilter(RecipientType.MailNonUniversalGroup), Filters.CreateRecipientTypeFilter(RecipientType.MailUniversalDistributionGroup), Filters.CreateRecipientTypeFilter(RecipientType.MailUniversalSecurityGroup) }), new NotFilter(Filters.CreateRecipientTypeDetailsValueFilter(RecipientTypeDetails.RoomList)) })); dictionary.Add(RecipientTypeDetails.RoomMailbox, new AndFilter(new QueryFilter[] { Filters.CreateRecipientTypeFilter(RecipientType.UserMailbox), Filters.CreateRecipientTypeDetailsValueFilter(RecipientTypeDetails.RoomMailbox) })); dictionary.Add(RecipientTypeDetails.LinkedRoomMailbox, new AndFilter(new QueryFilter[] { Filters.CreateRecipientTypeFilter(RecipientType.UserMailbox), Filters.CreateRecipientTypeDetailsValueFilter(RecipientTypeDetails.LinkedRoomMailbox) })); dictionary.Add(RecipientTypeDetails.EquipmentMailbox, new AndFilter(new QueryFilter[] { Filters.CreateRecipientTypeFilter(RecipientType.UserMailbox), Filters.CreateRecipientTypeDetailsValueFilter(RecipientTypeDetails.EquipmentMailbox) })); dictionary.Add(RecipientTypeDetails.LinkedMailbox, new AndFilter(new QueryFilter[] { Filters.CreateRecipientTypeFilter(RecipientType.UserMailbox), Filters.CreateRecipientTypeDetailsValueFilter(RecipientTypeDetails.LinkedMailbox) })); dictionary.Add(RecipientTypeDetails.UserMailbox, new AndFilter(new QueryFilter[] { Filters.CreateRecipientTypeFilter(RecipientType.UserMailbox), Filters.CreateRecipientTypeDetailsValueFilter(RecipientTypeDetails.UserMailbox) })); dictionary.Add(RecipientTypeDetails.MailForestContact, new AndFilter(new QueryFilter[] { Filters.CreateRecipientTypeFilter(RecipientType.MailContact), Filters.CreateRecipientTypeDetailsValueFilter(RecipientTypeDetails.MailForestContact) })); dictionary.Add(RecipientTypeDetails.SharedMailbox, new AndFilter(new QueryFilter[] { Filters.CreateRecipientTypeFilter(RecipientType.UserMailbox), Filters.CreateRecipientTypeDetailsValueFilter(RecipientTypeDetails.SharedMailbox) })); dictionary.Add(RecipientTypeDetails.TeamMailbox, new AndFilter(new QueryFilter[] { Filters.CreateRecipientTypeFilter(RecipientType.UserMailbox), Filters.CreateRecipientTypeDetailsValueFilter(RecipientTypeDetails.TeamMailbox) })); dictionary.Add(RecipientTypeDetails.RemoteGroupMailbox, new AndFilter(new QueryFilter[] { Filters.CreateRecipientTypeFilter(RecipientType.MailUniversalDistributionGroup), Filters.CreateRecipientTypeDetailsValueFilter(RecipientTypeDetails.RemoteGroupMailbox) })); dictionary.Add(RecipientTypeDetails.GroupMailbox, new AndFilter(new QueryFilter[] { Filters.CreateRecipientTypeFilter(RecipientType.UserMailbox), Filters.CreateRecipientTypeDetailsValueFilter(RecipientTypeDetails.GroupMailbox) })); dictionary.Add(RecipientTypeDetails.ArbitrationMailbox, new AndFilter(new QueryFilter[] { Filters.CreateRecipientTypeFilter(RecipientType.UserMailbox), Filters.CreateRecipientTypeDetailsValueFilter(RecipientTypeDetails.ArbitrationMailbox) })); dictionary.Add(RecipientTypeDetails.MailboxPlan, new AndFilter(new QueryFilter[] { Filters.CreateRecipientTypeFilter(RecipientType.UserMailbox), Filters.CreateRecipientTypeDetailsValueFilter(RecipientTypeDetails.MailboxPlan) })); dictionary.Add(RecipientTypeDetails.LinkedUser, new AndFilter(new QueryFilter[] { Filters.CreateRecipientTypeFilter(RecipientType.User), Filters.CreateRecipientTypeDetailsValueFilter(RecipientTypeDetails.LinkedUser) })); dictionary.Add(RecipientTypeDetails.RoomList, new AndFilter(new QueryFilter[] { Filters.CreateRecipientTypeFilter(RecipientType.MailUniversalDistributionGroup), Filters.CreateRecipientTypeDetailsValueFilter(RecipientTypeDetails.RoomList) })); dictionary.Add(RecipientTypeDetails.DiscoveryMailbox, new AndFilter(new QueryFilter[] { Filters.CreateRecipientTypeFilter(RecipientType.UserMailbox), Filters.CreateRecipientTypeDetailsValueFilter(RecipientTypeDetails.DiscoveryMailbox) })); dictionary.Add(RecipientTypeDetails.AuditLogMailbox, new AndFilter(new QueryFilter[] { Filters.CreateRecipientTypeFilter(RecipientType.UserMailbox), Filters.CreateRecipientTypeDetailsValueFilter(RecipientTypeDetails.AuditLogMailbox) })); dictionary.Add(RecipientTypeDetails.LegacyMailbox, new AndFilter(new QueryFilter[] { Filters.CreateRecipientTypeFilter(RecipientType.UserMailbox), new OrFilter(new QueryFilter[] { new NotFilter(new ExistsFilter(ADRecipientSchema.RecipientTypeDetailsValue)), Filters.CreateRecipientTypeDetailsValueFilter(RecipientTypeDetails.LegacyMailbox) }) })); dictionary.Add(RecipientTypeDetails.MailContact, new AndFilter(new QueryFilter[] { Filters.CreateRecipientTypeFilter(RecipientType.MailContact), new OrFilter(new QueryFilter[] { new NotFilter(new ExistsFilter(ADRecipientSchema.RecipientTypeDetailsValue)), Filters.CreateRecipientTypeDetailsValueFilter(RecipientTypeDetails.MailContact) }) })); dictionary.Add(RecipientTypeDetails.User, new AndFilter(new QueryFilter[] { Filters.CreateRecipientTypeFilter(RecipientType.User), Filters.UserEnabledFilter })); dictionary.Add(RecipientTypeDetails.Contact, Filters.CreateRecipientTypeFilter(RecipientType.Contact)); dictionary.Add(RecipientTypeDetails.UniversalDistributionGroup, new AndFilter(new QueryFilter[] { Filters.CreateRecipientTypeFilter(RecipientType.Group), Filters.UniversalDistributionGroupFilter })); dictionary.Add(RecipientTypeDetails.UniversalSecurityGroup, new AndFilter(new QueryFilter[] { Filters.CreateRecipientTypeFilter(RecipientType.Group), new NotFilter(Filters.CreateRecipientTypeDetailsValueFilter(RecipientTypeDetails.RoleGroup)), Filters.UniversalSecurityGroupFilter })); dictionary.Add(RecipientTypeDetails.RoleGroup, new AndFilter(new QueryFilter[] { Filters.CreateRecipientTypeFilter(RecipientType.Group), Filters.CreateRecipientTypeDetailsValueFilter(RecipientTypeDetails.RoleGroup), Filters.UniversalSecurityGroupFilter })); dictionary.Add(RecipientTypeDetails.NonUniversalGroup, new AndFilter(new QueryFilter[] { Filters.CreateRecipientTypeFilter(RecipientType.Group), Filters.NonUniversalGroupFilter })); dictionary.Add(RecipientTypeDetails.DisabledUser, new AndFilter(new QueryFilter[] { Filters.CreateRecipientTypeFilter(RecipientType.User), Filters.UserDisabledFilter, new OrFilter(new QueryFilter[] { new NotFilter(new ExistsFilter(ADRecipientSchema.RecipientTypeDetailsValue)), Filters.CreateRecipientTypeDetailsValueFilter(RecipientTypeDetails.DisabledUser) }) })); key = (RecipientTypeDetails.UserMailbox | RecipientTypeDetails.LinkedMailbox | RecipientTypeDetails.SharedMailbox | RecipientTypeDetails.LegacyMailbox | RecipientTypeDetails.RoomMailbox | RecipientTypeDetails.EquipmentMailbox | RecipientTypeDetails.MailContact | RecipientTypeDetails.MailUser | RecipientTypeDetails.MailForestContact | RecipientTypeDetails.DiscoveryMailbox | RecipientTypeDetails.RemoteUserMailbox | RecipientTypeDetails.RemoteRoomMailbox | RecipientTypeDetails.RemoteEquipmentMailbox | RecipientTypeDetails.RemoteSharedMailbox | RecipientTypeDetails.TeamMailbox | RecipientTypeDetails.RemoteTeamMailbox | RecipientTypeDetails.GroupMailbox | RecipientTypeDetails.LinkedRoomMailbox | RecipientTypeDetails.RemoteGroupMailbox); dictionary.Add(key, new AndFilter(new QueryFilter[] { Filters.CreateMailEnabledFilter(true), ADObject.ObjectCategoryFilter(ADUser.ObjectCategoryNameInternal), new NotFilter(Filters.CreateRecipientTypeDetailsValueFilter(RecipientTypeDetails.ArbitrationMailbox)), new NotFilter(Filters.CreateRecipientTypeDetailsValueFilter(RecipientTypeDetails.AuditLogMailbox)), new NotFilter(Filters.CreateRecipientTypeDetailsValueFilter(RecipientTypeDetails.MailboxPlan)) })); dictionary.Add(RecipientTypeDetails.MailUser, new AndFilter(new QueryFilter[] { Filters.CreateRecipientTypeFilter(RecipientType.MailUser), new OrFilter(new QueryFilter[] { Filters.CreateRecipientTypeDetailsValueFilter(RecipientTypeDetails.MailUser), new NotFilter(new ExistsFilter(ADRecipientSchema.RecipientTypeDetailsValue)) }) })); dictionary.Add(RecipientTypeDetails.MailUniversalDistributionGroup, new AndFilter(new QueryFilter[] { Filters.CreateRecipientTypeFilter(RecipientType.MailUniversalDistributionGroup), new OrFilter(new QueryFilter[] { new NotFilter(new ExistsFilter(ADRecipientSchema.RecipientTypeDetailsValue)), Filters.CreateRecipientTypeDetailsValueFilter(RecipientTypeDetails.MailUniversalDistributionGroup) }) })); dictionary.Add(RecipientTypeDetails.MailUniversalSecurityGroup, Filters.CreateRecipientTypeFilter(RecipientType.MailUniversalSecurityGroup)); dictionary.Add(RecipientTypeDetails.MailNonUniversalGroup, Filters.CreateRecipientTypeFilter(RecipientType.MailNonUniversalGroup)); dictionary.Add(RecipientTypeDetails.DynamicDistributionGroup, Filters.CreateRecipientTypeFilter(RecipientType.DynamicDistributionGroup)); dictionary.Add(RecipientTypeDetails.PublicFolder, Filters.CreateRecipientTypeFilter(RecipientType.PublicFolder)); dictionary.Add(RecipientTypeDetails.MicrosoftExchange, Filters.CreateRecipientTypeFilter(RecipientType.MicrosoftExchange)); dictionary.Add(RecipientTypeDetails.SystemAttendantMailbox, Filters.CreateRecipientTypeFilter(RecipientType.SystemAttendantMailbox)); dictionary.Add(RecipientTypeDetails.SystemMailbox, Filters.CreateRecipientTypeFilter(RecipientType.SystemMailbox)); dictionary.Add((RecipientTypeDetails)((ulong)int.MinValue), new AndFilter(new QueryFilter[] { Filters.CreateRecipientTypeFilter(RecipientType.MailUser), Filters.CreateRecipientTypeDetailsValueFilter((RecipientTypeDetails)((ulong)int.MinValue)) })); dictionary.Add(RecipientTypeDetails.Computer, Filters.CreateRecipientTypeFilter(RecipientType.Computer)); dictionary.Add(RecipientTypeDetails.RemoteRoomMailbox, new AndFilter(new QueryFilter[] { Filters.CreateRecipientTypeFilter(RecipientType.MailUser), Filters.CreateRecipientTypeDetailsValueFilter(RecipientTypeDetails.RemoteRoomMailbox) })); dictionary.Add(RecipientTypeDetails.RemoteEquipmentMailbox, new AndFilter(new QueryFilter[] { Filters.CreateRecipientTypeFilter(RecipientType.MailUser), Filters.CreateRecipientTypeDetailsValueFilter(RecipientTypeDetails.RemoteEquipmentMailbox) })); dictionary.Add(RecipientTypeDetails.RemoteTeamMailbox, new AndFilter(new QueryFilter[] { Filters.CreateRecipientTypeFilter(RecipientType.MailUser), Filters.CreateRecipientTypeDetailsValueFilter(RecipientTypeDetails.RemoteTeamMailbox) })); dictionary.Add(RecipientTypeDetails.RemoteSharedMailbox, new AndFilter(new QueryFilter[] { Filters.CreateRecipientTypeFilter(RecipientType.MailUser), Filters.CreateRecipientTypeDetailsValueFilter(RecipientTypeDetails.RemoteSharedMailbox) })); dictionary.Add(RecipientTypeDetails.PublicFolderMailbox, Filters.CreateRecipientTypeDetailsValueFilter(RecipientTypeDetails.PublicFolderMailbox)); dictionary.Add(RecipientTypeDetails.MonitoringMailbox, Filters.CreateRecipientTypeDetailsValueFilter(RecipientTypeDetails.MonitoringMailbox)); return(dictionary); }
private static QueryFilter[] InitializeStaticRecipientTypeFilters() { QueryFilter[] array = new QueryFilter[Filters.RecipientTypeCount]; array[1] = new AndFilter(new QueryFilter[] { ADObject.ObjectClassFilter(ADUser.MostDerivedClass, true), ADObject.ObjectCategoryFilter(ADUser.ObjectCategoryNameInternal), Filters.CreateMailEnabledFilter(false) }); array[2] = new AndFilter(new QueryFilter[] { ADObject.ObjectClassFilter(ADUser.MostDerivedClass, true), ADObject.ObjectCategoryFilter(ADUser.ObjectCategoryNameInternal), Filters.CreateMailEnabledFilter(true), Filters.CreateMailboxEnabledFilter(true) }); array[3] = new AndFilter(new QueryFilter[] { ADObject.ObjectClassFilter(ADUser.MostDerivedClass, true), ADObject.ObjectCategoryFilter(ADUser.ObjectCategoryNameInternal), Filters.CreateMailEnabledFilter(true), Filters.CreateMailboxEnabledFilter(false) }); array[4] = new AndFilter(new QueryFilter[] { ADObject.ObjectClassFilter(ADContact.MostDerivedClass), Filters.CreateMailEnabledFilter(false) }); array[5] = new AndFilter(new QueryFilter[] { ADObject.ObjectClassFilter(ADContact.MostDerivedClass), Filters.CreateMailEnabledFilter(true) }); array[6] = new AndFilter(new QueryFilter[] { ADObject.ObjectCategoryFilter(ADGroup.MostDerivedClass), Filters.CreateMailEnabledFilter(false) }); array[9] = new AndFilter(new QueryFilter[] { ADObject.ObjectCategoryFilter(ADGroup.MostDerivedClass), Filters.NonUniversalGroupFilter, Filters.CreateMailEnabledFilter(true) }); array[7] = new AndFilter(new QueryFilter[] { ADObject.ObjectCategoryFilter(ADGroup.MostDerivedClass), Filters.UniversalDistributionGroupFilter, Filters.CreateMailEnabledFilter(true) }); array[8] = new AndFilter(new QueryFilter[] { ADObject.ObjectCategoryFilter(ADGroup.MostDerivedClass), Filters.UniversalSecurityGroupFilter, Filters.CreateMailEnabledFilter(true) }); array[10] = new AndFilter(new QueryFilter[] { ADObject.ObjectCategoryFilter(ADDynamicGroup.MostDerivedClass), Filters.CreateMailEnabledFilter(true) }); array[11] = new AndFilter(new QueryFilter[] { ADObject.ObjectCategoryFilter(ADPublicFolder.MostDerivedClass), Filters.CreateMailEnabledFilter(true) }); array[12] = new AndFilter(new QueryFilter[] { ADObject.ObjectCategoryFilter(ADPublicDatabase.MostDerivedClass), Filters.CreateMailEnabledFilter(true) }); array[13] = new AndFilter(new QueryFilter[] { ADObject.ObjectCategoryFilter(ADSystemAttendantMailbox.MostDerivedClass), Filters.CreateMailEnabledFilter(true) }); array[15] = new AndFilter(new QueryFilter[] { ADObject.ObjectCategoryFilter(ADMicrosoftExchangeRecipient.MostDerivedClass), Filters.CreateMailEnabledFilter(true) }); array[14] = new AndFilter(new QueryFilter[] { Filters.CreateMailEnabledFilter(true), Filters.CreateMailboxEnabledFilter(true), new OrFilter(new QueryFilter[] { ADObject.ObjectCategoryFilter(ADSystemMailbox.MostDerivedClass), new AndFilter(new QueryFilter[] { ADUser.ImplicitFilterInternal, new TextFilter(ADObjectSchema.Name, "SystemMailbox{", MatchOptions.Prefix, MatchFlags.Default) }) }) }); array[16] = ADComputerRecipient.ImplicitFilterInternal; return(array); }
private static Dictionary <int, QueryFilter> InitializeStaticRecipientTypeFilterOptimizations() { Dictionary <int, QueryFilter> dictionary = new Dictionary <int, QueryFilter>(32); Filters.RecipientTypeBitVector32 recipientTypeBitVector = default(Filters.RecipientTypeBitVector32); recipientTypeBitVector.Reset(); recipientTypeBitVector[RecipientType.DynamicDistributionGroup] = true; recipientTypeBitVector[RecipientType.UserMailbox] = true; recipientTypeBitVector[RecipientType.MailContact] = true; recipientTypeBitVector[RecipientType.MailUniversalDistributionGroup] = true; recipientTypeBitVector[RecipientType.MailUniversalSecurityGroup] = true; recipientTypeBitVector[RecipientType.MailUser] = true; QueryFilter value = Filters.AllMailableUsersContactsDDLsUniversalGroupsFilter; dictionary.Add(recipientTypeBitVector.Data, value); recipientTypeBitVector.Reset(); recipientTypeBitVector[RecipientType.Contact] = true; recipientTypeBitVector[RecipientType.MailContact] = true; value = ADObject.ObjectClassFilter(ADContact.MostDerivedClass); dictionary.Add(recipientTypeBitVector.Data, value); recipientTypeBitVector.Reset(); recipientTypeBitVector[RecipientType.Group] = true; recipientTypeBitVector[RecipientType.MailNonUniversalGroup] = true; recipientTypeBitVector[RecipientType.MailUniversalDistributionGroup] = true; recipientTypeBitVector[RecipientType.MailUniversalSecurityGroup] = true; value = ADObject.ObjectCategoryFilter(ADGroup.MostDerivedClass); dictionary.Add(recipientTypeBitVector.Data, value); recipientTypeBitVector.Reset(); recipientTypeBitVector[RecipientType.MailNonUniversalGroup] = true; recipientTypeBitVector[RecipientType.MailUniversalDistributionGroup] = true; recipientTypeBitVector[RecipientType.MailUniversalSecurityGroup] = true; value = new AndFilter(new QueryFilter[] { Filters.CreateMailEnabledFilter(true), ADObject.ObjectCategoryFilter(ADGroup.MostDerivedClass) }); dictionary.Add(recipientTypeBitVector.Data, value); recipientTypeBitVector.Reset(); recipientTypeBitVector[RecipientType.User] = true; recipientTypeBitVector[RecipientType.MailUser] = true; recipientTypeBitVector[RecipientType.UserMailbox] = true; value = ADUser.ImplicitFilterInternal; dictionary.Add(recipientTypeBitVector.Data, value); recipientTypeBitVector.Reset(); recipientTypeBitVector[RecipientType.DynamicDistributionGroup] = true; recipientTypeBitVector[RecipientType.UserMailbox] = true; recipientTypeBitVector[RecipientType.MailContact] = true; recipientTypeBitVector[RecipientType.MailUniversalDistributionGroup] = true; recipientTypeBitVector[RecipientType.MailUniversalSecurityGroup] = true; recipientTypeBitVector[RecipientType.MailUser] = true; recipientTypeBitVector[RecipientType.MailNonUniversalGroup] = true; recipientTypeBitVector[RecipientType.PublicFolder] = true; value = new AndFilter(new QueryFilter[] { Filters.CreateMailEnabledFilter(true), new OrFilter(new QueryFilter[] { ADObject.ObjectCategoryFilter(ADUser.ObjectCategoryNameInternal), ADObject.ObjectCategoryFilter(ADDynamicGroup.ObjectCategoryNameInternal), ADObject.ObjectCategoryFilter(ADGroup.MostDerivedClass), ADObject.ObjectCategoryFilter(ADPublicFolder.MostDerivedClass) }) }); dictionary.Add(recipientTypeBitVector.Data, value); recipientTypeBitVector.Reset(); recipientTypeBitVector[RecipientType.DynamicDistributionGroup] = true; recipientTypeBitVector[RecipientType.UserMailbox] = true; recipientTypeBitVector[RecipientType.MailContact] = true; recipientTypeBitVector[RecipientType.MailUniversalDistributionGroup] = true; recipientTypeBitVector[RecipientType.MailUniversalSecurityGroup] = true; recipientTypeBitVector[RecipientType.MailUser] = true; recipientTypeBitVector[RecipientType.MailNonUniversalGroup] = true; recipientTypeBitVector[RecipientType.PublicFolder] = true; recipientTypeBitVector[RecipientType.SystemAttendantMailbox] = true; recipientTypeBitVector[RecipientType.SystemMailbox] = true; value = new AndFilter(new QueryFilter[] { Filters.CreateMailEnabledFilter(true), new OrFilter(new QueryFilter[] { ADObject.ObjectCategoryFilter(ADUser.ObjectCategoryNameInternal), ADObject.ObjectCategoryFilter(ADDynamicGroup.ObjectCategoryNameInternal), ADObject.ObjectCategoryFilter(ADGroup.MostDerivedClass), ADObject.ObjectCategoryFilter(ADPublicFolder.MostDerivedClass), ADObject.ObjectCategoryFilter(ADSystemAttendantMailbox.MostDerivedClass), ADObject.ObjectCategoryFilter(ADSystemMailbox.MostDerivedClass) }) }); dictionary.Add(recipientTypeBitVector.Data, value); recipientTypeBitVector.Reset(); recipientTypeBitVector[RecipientType.DynamicDistributionGroup] = true; recipientTypeBitVector[RecipientType.MailUniversalDistributionGroup] = true; recipientTypeBitVector[RecipientType.MailUniversalSecurityGroup] = true; value = new AndFilter(new QueryFilter[] { Filters.CreateMailEnabledFilter(true), new OrFilter(new QueryFilter[] { ADObject.ObjectCategoryFilter(ADDynamicGroup.ObjectCategoryNameInternal), new AndFilter(new QueryFilter[] { ADObject.ObjectCategoryFilter(ADGroup.MostDerivedClass), Filters.CreateUniversalGroupFilter(true) }) }) }); dictionary.Add(recipientTypeBitVector.Data, value); recipientTypeBitVector.Reset(); recipientTypeBitVector[RecipientType.MailContact] = true; recipientTypeBitVector[RecipientType.MailUser] = true; value = new AndFilter(new QueryFilter[] { ADObject.ObjectCategoryFilter(ADUser.ObjectCategoryNameInternal), Filters.CreateMailEnabledFilter(true), new OrFilter(new QueryFilter[] { ADObject.ObjectClassFilter(ADContact.MostDerivedClass), Filters.CreateMailboxEnabledFilter(false) }) }); dictionary.Add(recipientTypeBitVector.Data, value); recipientTypeBitVector.Reset(); return(dictionary); }