Esempio n. 1
0
        /// <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);
            }
        }
Esempio n. 2
0
        /// <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));
            }
        }