public void Setup() { _series = Builder <Series> .CreateNew() .Build(); _episode = Builder <Episode> .CreateNew() .With(e => e.SeriesId = _series.SeriesId) .With(e => e.Series = _series) .Build(); _episodeParseResult = Builder <EpisodeParseResult> .CreateNew() .With(p => p.SeasonNumber = 1) .With(p => p.EpisodeNumbers = new List <int> { _episode.EpisodeNumber }) .With(p => p.Episodes = new List <Episode> { _episode }) .With(p => p.Series = _series) .Build(); _searchHistoryItem = new SearchHistoryItem(); }
async private void HistoryList_SelectionChanged(object sender, SelectionChangedEventArgs e) { SearchHistoryItem item = (SearchHistoryItem)HistoryList.SelectedItem; try { // Active ProgressSpinner and Show Progress Text SearchProgress.IsActive = true; txtSearchProgress.Text = "Searching..."; SearchResult.Vehicles = await VehicleAPI.GetVehiclesAsync(item.Query); // Disable ProgressSpinner and Show Progress Text SearchProgress.IsActive = false; txtSearchProgress.Text = ""; if (SearchResult.Vehicles.Count > 0) { Frame.Navigate(typeof(SearchResult), null, new SuppressNavigationTransitionInfo()); } } catch (Exception ex) { MessageDialog dialog = new MessageDialog(ex.Message); dialog.Title = "Info"; await dialog.ShowAsync(); } }
/// <summary> /// Add new item to SearchHistoryList (not file) /// </summary> /// <param name="item"></param> public static void AddItem(SearchHistoryItem item) { if (List.Count >= 10) { List.RemoveAt(0); } List.Add(item); }
public override SearchHistoryItem CheckReport(Series series, dynamic options, EpisodeParseResult episodeParseResult, SearchHistoryItem item) { if (options.SeasonNumber != episodeParseResult.SeasonNumber) { logger.Trace("Season number does not match searched season number, skipping."); item.SearchError = ReportRejectionType.WrongSeason; return(item); } return(item); }
public override SearchHistoryItem CheckReport(Series series, dynamic options, EpisodeParseResult episodeParseResult, SearchHistoryItem item) { Episode episode = options.Episode; if (!episodeParseResult.AirDate.HasValue || episodeParseResult.AirDate.Value != episode.AirDate.Value) { logger.Trace("Episode AirDate does not match searched episode number, skipping."); item.SearchError = ReportRejectionType.WrongEpisode; return(item); } return(item); }
public override SearchHistoryItem CheckReport(Series series, dynamic options, EpisodeParseResult episodeParseResult, SearchHistoryItem item) { if (series.UseSceneNumbering && options.Episode.SeasonNumber > 0 && options.Episode.EpisodeNumber > 0) { if (options.Episode.SceneSeasonNumber != episodeParseResult.SeasonNumber) { logger.Trace("Season number does not match searched season number, skipping."); item.SearchError = ReportRejectionType.WrongSeason; return(item); } if (!episodeParseResult.EpisodeNumbers.Contains(options.Episode.SceneEpisodeNumber)) { logger.Trace("Episode number does not match searched episode number, skipping."); item.SearchError = ReportRejectionType.WrongEpisode; return(item); } return(item); } if (options.Episode.SeasonNumber != episodeParseResult.SeasonNumber) { logger.Trace("Season number does not match searched season number, skipping."); item.SearchError = ReportRejectionType.WrongSeason; return(item); } if (!episodeParseResult.EpisodeNumbers.Contains(options.Episode.EpisodeNumber)) { logger.Trace("Episode number does not match searched episode number, skipping."); item.SearchError = ReportRejectionType.WrongEpisode; return(item); } return(item); }
public void Setup() { _series = Builder <Series> .CreateNew() .Build(); _episodes = Builder <Episode> .CreateListOfSize(10) .All() .With(e => e.SeriesId = _series.SeriesId) .With(e => e.Series = _series) .Build() .ToList(); _episodeParseResult = Builder <EpisodeParseResult> .CreateNew() .With(p => p.SeasonNumber = 1) .Build(); _searchHistoryItem = new SearchHistoryItem(); }
public virtual SearchHistory ProcessReports(Series series, dynamic options, List <EpisodeParseResult> episodeParseResults, SearchHistory searchResult, ProgressNotification notification) { var items = new List <SearchHistoryItem>(); searchResult.Successes = new List <Int32>(); foreach (var episodeParseResult in episodeParseResults .OrderByDescending(c => c.Quality) .ThenBy(c => c.EpisodeNumbers.MinOrDefault()) .ThenBy(c => c.Age)) { try { var item = new SearchHistoryItem { ReportTitle = episodeParseResult.OriginalString, NzbUrl = episodeParseResult.NzbUrl, Indexer = episodeParseResult.Indexer, Quality = episodeParseResult.Quality.Quality, Proper = episodeParseResult.Quality.Proper, Size = episodeParseResult.Size, Age = episodeParseResult.Age, Language = episodeParseResult.Language }; items.Add(item); logger.Trace("Analysing report " + episodeParseResult); episodeParseResult.Series = _seriesProvider.FindSeries(episodeParseResult.CleanTitle); if (episodeParseResult.Series == null || episodeParseResult.Series.SeriesId != series.SeriesId) { item.SearchError = ReportRejectionType.WrongSeries; continue; } episodeParseResult.Episodes = _episodeProvider.GetEpisodesByParseResult(episodeParseResult); if (searchResult.Successes.Intersect(episodeParseResult.Episodes.Select(e => e.EpisodeId)).Any()) { item.SearchError = ReportRejectionType.Skipped; continue; } CheckReport(series, options, episodeParseResult, item); if (item.SearchError != ReportRejectionType.None) { continue; } item.SearchError = _allowedDownloadSpecification.IsSatisfiedBy(episodeParseResult); if (item.SearchError == ReportRejectionType.None) { if (DownloadReport(notification, episodeParseResult, item)) { searchResult.Successes.AddRange(episodeParseResult.Episodes.Select(e => e.EpisodeId)); } } } catch (Exception e) { logger.ErrorException("An error has occurred while processing parse result items from " + episodeParseResult, e); } } searchResult.SearchHistoryItems = items; return(searchResult); }
public abstract SearchHistoryItem CheckReport(Series series, dynamic options, EpisodeParseResult episodeParseResult, SearchHistoryItem item);
public virtual Boolean DownloadReport(ProgressNotification notification, EpisodeParseResult episodeParseResult, SearchHistoryItem item) { logger.Debug("Found '{0}'. Adding to download queue.", episodeParseResult); try { if (_downloadProvider.DownloadReport(episodeParseResult)) { notification.CurrentMessage = String.Format("{0} Added to download queue", episodeParseResult); item.Success = true; return(true); } item.SearchError = ReportRejectionType.DownloadClientFailure; } catch (Exception e) { logger.ErrorException("Unable to add report to download queue." + episodeParseResult, e); notification.CurrentMessage = String.Format("Unable to add report to download queue. {0}", episodeParseResult); item.SearchError = ReportRejectionType.DownloadClientFailure; } return(false); }