private List <FileVO> LooseFindStringColumn(string name, string columnName) { List <FileVO> all = GetAll(); List <SortableSearchItem> resultSortable = new List <SortableSearchItem>(); double curDistance; string currentCompareTo; for (int i = 0; i < all.Count; i++) { currentCompareTo = all[i].Name; curDistance = Common.Search.StringSearchFunctions.MixedDistance.AverageNormalizedDistance( name, currentCompareTo, ConfigurationManager.LEVENSTEIN_DISTANCE_UPPER_LIMIT); if (curDistance > 0) { resultSortable.Add(new SortableSearchItem(curDistance, all[i])); } } resultSortable.Sort(SortableSearchItem.GetComparer()); all.Clear(); foreach (SortableSearchItem item in resultSortable) { all.Add(item.Record as FileVO); } return(all); }
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); }
private List <SortableSearchItem> GenerateSortableList(List <DocumentVO> documents) { List <SortableSearchItem> result = new List <SortableSearchItem>(); SortableSearchItem temp; for (int i = 0; i < documents.Count; i++) { temp = new SortableSearchItem((double)i / documents.Count, documents[i]); result.Add(temp); } return(result); }