public static SearchResult Search(SearchFilters filter, IEnumerable <Item> dataSource) { IEnumerable <Item> result; result = dataSource.Where(x => x.Level >= filter.LevelMin && x.Level <= filter.LevelMax); if (!String.IsNullOrEmpty(filter.QueryString)) { result = TradingPostApiOfficial.ItemTradingPostDB.Values.Where( x => x.Name.ToUpperInvariant().Contains(filter.QueryString.ToUpperInvariant())); } if (!String.IsNullOrEmpty(filter.Rarity)) { result = result.Where(x => x.Rarity == filter.Rarity); } if (!String.IsNullOrEmpty(filter.TypeId)) { result = result.Where(x => x.Type == filter.TypeId); } if (!String.IsNullOrEmpty(filter.SubTypeId)) { result = result.Where(x => x.Details.Type == filter.SubTypeId); } var list = result.ToList(); int countAll = list.Count; list = list.Skip(filter.Offset).Take(filter.ItemsPerPage).ToList(); var searchResult = SearchResult.ParseSearchResult(list); filter.Total = countAll; searchResult.Total = filter.Total; searchResult.Offset = filter.Offset; return(searchResult); }
public static SearchResult Search(SearchFilters filter, IEnumerable<Item> dataSource) { IEnumerable<Item> result; result = dataSource.Where(x => x.Level >= filter.LevelMin && x.Level <= filter.LevelMax); if (!String.IsNullOrEmpty(filter.QueryString)) { result = TradingPostApiOfficial.ItemTradingPostDB.Values.Where( x => x.Name.ToUpperInvariant().Contains(filter.QueryString.ToUpperInvariant())); } if (!String.IsNullOrEmpty(filter.Rarity)) { result = result.Where(x => x.Rarity == filter.Rarity); } if (!String.IsNullOrEmpty(filter.TypeId)) { result = result.Where(x => x.Type == filter.TypeId); } if (!String.IsNullOrEmpty(filter.SubTypeId)) { result = result.Where(x => x.Details.Type == filter.SubTypeId); } var list = result.ToList(); int countAll = list.Count; list = list.Skip(filter.Offset).Take(filter.ItemsPerPage).ToList(); var searchResult = SearchResult.ParseSearchResult(list); filter.Total = countAll; searchResult.Total = filter.Total; searchResult.Offset = filter.Offset; return searchResult; }
public void Search(int page, SearchFilters filter) { if (SearchFinished != null) { IsSearchInProgress = true; Filter = filter; Filter.Offset = page * filter.ItemsPerPage; if (filter.SearchType == SearchType.Items) { SearchResult = SearchItems(Filter); } else { SearchResult = SearchRecipes(Filter); } IsSearchInProgress = false; if (SearchFinished != null) { SearchFinished(this, new EventArgs <SearchResult>(this.SearchResult)); } } }
public void Search(int page, SearchFilters filters) { if (SearchFinished != null) { this.CurrentSearchFilters = filters; TaskFactory f = new TaskFactory(); var t = f.StartNew(() => { int count = HotItemController.CurrentApi.ItemsPerPage; int offset = (page) * HotItemController.CurrentApi.ItemsPerPage; ScrapeHelper searchScraper = new ScrapeHelper(Config.SessionKey); searchScraper.Finished += new EventHandler<DataProvider.Event.ScrapeFinishedEventArgs>(searchScraper_Finished); string sortingMode = filters.SortingMode.ToString(); if (filters.SortingMode == SortingMode.none) { sortingMode = null; } IsSearchInProgress = true; String uri = HotItemController.CurrentApi.UriSearch( filters.QueryString, offset, count, filters.TypeId, filters.SubTypeId, filters.Rarity, filters.LevelMin, filters.LevelMax, sortingMode, filters.DescendingSorting); //h.UseSearchApi().Add("text", query).Add("offset", offset.ToString()).Add("count", count.ToString()).Generate(); searchScraper.CrawlString(uri, 0, filters.QueryString, HotItemController.CurrentApi); }); } }
public static SearchResult SearchRecipes(SearchFilters filter) { return(Search(filter, TradingPostApiOfficial.ItemRecipesDB.Values)); }
private void Search() { String rarity = null; String category = null; String subCategory = null; if (SelectedCategory != null) { category = SelectedCategory.Value.Key; if (category == "*") category = null; } if (SelectedSubCategory != null) { subCategory = SelectedSubCategory.Key; if (subCategory == "*") subCategory = null; } if (SelectedRarity != null) { rarity = SelectedRarity.Key; if (rarity == "*") rarity = null; } SearchFilters f = new SearchFilters() { QueryString = SearchString, TypeId = category, SubTypeId = subCategory, Rarity = rarity, LevelMin = MinLevel.ToString(), LevelMax = MaxLevel.ToString(), }; _hotItemController.Search(0, f); }
public static SearchResult SearchItems(SearchFilters filter) { return Search(filter, TradingPostApiOfficial.ItemTradingPostDB.Values); }
public void Search(int page, SearchFilters filter) { if (SearchFinished != null) { IsSearchInProgress = true; Filter = filter; Filter.Offset = page * filter.ItemsPerPage; if (filter.SearchType == SearchType.Items) { SearchResult = SearchItems(Filter); } else { SearchResult = SearchRecipes(Filter); } IsSearchInProgress = false; if (SearchFinished != null) { SearchFinished(this, new EventArgs<SearchResult>(this.SearchResult)); } } }
private void Search() { String rarity = null; String category = null; String subCategory = null; if (SelectedCategory != null) { category = SelectedCategory.Value.Key; if (category == "*") category = null; } if (SelectedSubCategory != null) { subCategory = SelectedSubCategory.Key; if (subCategory == "*") subCategory = null; } if (SelectedRarity != null) { rarity = SelectedRarity.Key; if (rarity == "*") rarity = null; } var f = new SearchFilters() { QueryString = SearchString, TypeId = category, SubTypeId = subCategory, Rarity = rarity, LevelMin = MinLevel, LevelMax = MaxLevel, SearchType = IsItemSearch ? SearchType.Items : SearchType.Recpipes }; _searchService.Search(0, f); }