/// <summary> /// Nexts the page. /// </summary> public void NextPage() { try { IsWorking = true; TorrentSearchResults.Clear(); _defaultList.Clear(); var searchResponse = _searchService.FindTorrents(SearchQuery.Trim(), _searchPage, SelectedTorrentCategory); if (searchResponse != null) { var collection = searchResponse as IList <Torrent> ?? searchResponse.ToList(); _defaultList.AddRange(collection); collection.ForEach(x => TorrentSearchResults.Add(x)); } IsWorking = false; _searchPage++; } catch (HttpRequestException) { IsWorking = false; TorrentSearchResults.Clear(); _defaultList.Clear(); } catch (Exception exception) { IsWorking = false; _dialogService.ShowMessageBox(exception.Message, messageBoxImage: MessageBoxImage.Error); } }
/// <summary> /// Sorts the torrent search results collection. /// </summary> /// <param name="property">The property.</param> private void SortTorrentSearchResultsCollection(string property) { List <Torrent> sortedList = null; if (_alreadySortedProperties.Count(x => x == property) == 0) { switch (property) { case "torrent_trusted": sortedList = TorrentSearchResults.OrderBy(x => x.IsTrusted).ToList(); break; case "torrent_title": sortedList = TorrentSearchResults.OrderBy(x => x.Name).ToList(); break; case "seeds": sortedList = TorrentSearchResults.OrderBy(x => x.Seeds).ToList(); break; case "leeches": sortedList = TorrentSearchResults.OrderBy(x => x.Leechers).ToList(); break; case "size": sortedList = TorrentSearchResults.OrderBy(x => x.Size).ToList(); break; case "upload_date": sortedList = TorrentSearchResults.OrderBy(x => x.Uploaded).ToList(); break; } _alreadySortedProperties.Add(property); } else if (_alreadySortedProperties.Count(x => x == property) == 1) { switch (property) { case "torrent_category": sortedList = TorrentSearchResults.OrderByDescending(x => x.Category).ToList(); break; case "torrent_title": sortedList = TorrentSearchResults.OrderByDescending(x => x.Name).ToList(); break; case "seeds": sortedList = TorrentSearchResults.OrderByDescending(x => x.Seeds).ToList(); break; case "leeches": sortedList = TorrentSearchResults.OrderByDescending(x => x.Leechers).ToList(); break; case "size": sortedList = TorrentSearchResults.OrderByDescending(x => x.Size).ToList(); break; case "upload_date": sortedList = TorrentSearchResults.OrderByDescending(x => x.Uploaded).ToList(); break; } _alreadySortedProperties.Add(property); } else { _alreadySortedProperties.RemoveAll(x => x == property); sortedList = _defaultList; } if (sortedList != null) { TorrentSearchResults.Clear(); sortedList.ForEach(x => TorrentSearchResults.Add(x)); } }