Пример #1
0
        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);
        }
Пример #2
0
        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);
        }