protected ForwardOnlyFilteredReader(ForwardOnlyFilteredReader.PropertySetMixer propertySets, bool usePrefetchMode) { this.allPropertySets = propertySets; this.usePrefetchMode = usePrefetchMode; this.queryPropertySets = new ForwardOnlyFilteredReader.PropertySetMixer(new Predicate <PropertyDefinition>(this.ShouldIntercept)); this.queryPropertySets.MigrateSets(this.allPropertySets, new ForwardOnlyFilteredReader.PropertySet[] { ForwardOnlyFilteredReader.PropertySet.Identification, ForwardOnlyFilteredReader.PropertySet.ForFilter }); if (this.usePrefetchMode) { this.queryPropertySets.MigrateSets(this.allPropertySets, new ForwardOnlyFilteredReader.PropertySet[] { ForwardOnlyFilteredReader.PropertySet.Requested }); } else { this.queryPropertySets.AddSet(ForwardOnlyFilteredReader.PropertySet.Requested, this.allPropertySets.GetSet(ForwardOnlyFilteredReader.PropertySet.Identification)); this.populationPropertySets = new ForwardOnlyFilteredReader.PropertySetMixer(new Predicate <PropertyDefinition>(this.ShouldIntercept)); this.populationPropertySets.MigrateSets(this.allPropertySets, new ForwardOnlyFilteredReader.PropertySet[] { ForwardOnlyFilteredReader.PropertySet.Identification, ForwardOnlyFilteredReader.PropertySet.Requested }); } this.query = new LazilyInitialized <QueryResult>(() => this.MakeQuery(this.queryPropertySets.GetFilteredMergedSet())); this.disposeTracker = this.GetDisposeTracker(); }
private static ForwardOnlyFilteredReader.PropertySetMixer GetPropertySets(IDictionary <PropertyDefinition, object> dictionary, PropertyDefinition[] propertiesToReturn) { ForwardOnlyFilteredReader.PropertySetMixer propertySetMixer = new ForwardOnlyFilteredReader.PropertySetMixer(); propertySetMixer.AddSet(ForwardOnlyFilteredReader.PropertySet.Identification, new PropertyDefinition[] { InternalSchema.EntryId }); propertySetMixer.AddSet(ForwardOnlyFilteredReader.PropertySet.ForFilter, ContactsFolder.FindNamesContactsReader.GetForFilterSet(dictionary.Keys)); propertySetMixer.AddSet(ForwardOnlyFilteredReader.PropertySet.Requested, propertiesToReturn); return(propertySetMixer); }
private static ForwardOnlyFilteredReader.PropertySetMixer GetPropertySets(params PropertyDefinition[] propertiesToReturn) { ForwardOnlyFilteredReader.PropertySetMixer propertySetMixer = new ForwardOnlyFilteredReader.PropertySetMixer(); propertySetMixer.AddSet(ForwardOnlyFilteredReader.PropertySet.Identification, new PropertyDefinition[] { ContactsFolder.FindSomeoneContactsReader.idProperty }); propertySetMixer.AddSet(ForwardOnlyFilteredReader.PropertySet.ForFilter, Util.CollectionToArray <StorePropertyDefinition>(ContactsFolder.AnrCriteria.AnrProperties)); propertySetMixer.AddSet(ForwardOnlyFilteredReader.PropertySet.Requested, propertiesToReturn); return(propertySetMixer); }
private static ForwardOnlyFilteredReader.PropertySetMixer GetPropertySets(params PropertyDefinition[] propertiesToReturn) { List <PropertyDefinition> list = new List <PropertyDefinition>(); list.Add(ContactsFolder.AnrContactsReader.idProperty); list.AddRange(ContactsFolder.AnrCriteria.AnrProperties.Cast <PropertyDefinition>()); Util.AddRange <PropertyDefinition, ContactEmailSlotParticipantProperty>(list, ContactEmailSlotParticipantProperty.AllInstances.Values); list.AddRange(ContactsFolder.AnrContactsReader.additionalProperties); ForwardOnlyFilteredReader.PropertySetMixer propertySetMixer = new ForwardOnlyFilteredReader.PropertySetMixer(); propertySetMixer.AddSet(ForwardOnlyFilteredReader.PropertySet.Identification, new PropertyDefinition[] { ContactsFolder.AnrContactsReader.idProperty }); propertySetMixer.AddSet(ForwardOnlyFilteredReader.PropertySet.ForFilter, list.ToArray()); propertySetMixer.AddSet(ForwardOnlyFilteredReader.PropertySet.Requested, propertiesToReturn); return(propertySetMixer); }