public override IConfigurable[] Find <T>(QueryFilter filter, ObjectId rootId, bool deepSearch, SortBy sortBy) { MailboxDataProvider.Tracer.TraceDebug <QueryFilter>((long)this.GetHashCode(), "Finding search object that match filter '{0}'", filter); if (filter != null && !(filter is TextFilter)) { throw new ArgumentException("filter"); } IEnumerable <T> enumerable = null; using (MailboxDataStore mailboxDataStore = this.OpenMailboxStore()) { enumerable = mailboxDataStore.FindPaged <T>(filter as TextFilter, 0); } LinkedList <IConfigurable> linkedList = new LinkedList <IConfigurable>(); foreach (T t in enumerable) { IConfigurable value = t; linkedList.AddLast(value); if (linkedList.Count >= 1000) { break; } } IConfigurable[] array = new IConfigurable[linkedList.Count]; linkedList.CopyTo(array, 0); return(array); }
public override IEnumerable <T> FindPaged <T>(QueryFilter filter, ObjectId rootId, bool deepSearch, SortBy sortBy, int pageSize) { MailboxDataProvider.Tracer.TraceDebug <QueryFilter>((long)this.GetHashCode(), "Finding search object that match filter {0}", filter); if (filter != null && !(filter is TextFilter)) { throw new ArgumentException("filter"); } IEnumerable <T> result; using (MailboxDataStore mailboxDataStore = this.OpenMailboxStore()) { result = mailboxDataStore.FindPaged <T>(filter as TextFilter, pageSize); } return(result); }