Ejemplo n.º 1
0
        public List <DocumentVO> Find(List <Filter> filters)
        {
            if (filters.Count == 0)
            {
                return(new List <DocumentVO>());
            }

            SortFilters(filters);
            List <SearchFilter> searchFilters = new List <SearchFilter>();

            foreach (Filter filter in filters)
            {
                searchFilters.Add(FiltersManager.GetFilter(filter));
            }

            List <SortableSearchItem> primaryResult = FindInDB(searchFilters[0]);

            for (int i = 1; i < searchFilters.Count; i++)
            {
                searchFilters[i].Apply(primaryResult);
            }

            primaryResult.Sort(SortableSearchItem.GetComparer());
            List <DocumentVO> res = ExtractNormalList(primaryResult);

            foreach (DocumentVO fol in res)
            {
                ((IDocumentDAO)dataAccessObject).FullLoad(fol);
            }

            return(res);
        }