void searchWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { try { List <TorrentLink> links = e.Result as List <TorrentLink>; TorrentCount = links.Count; foreach (TorrentLink link in links) { TorrentLinks.Add(link); } ViewTorrentLinks.Refresh(); List <CL_GroupVideoQuality> vidQualListTemp = new List <CL_GroupVideoQuality>(); if (CurrentSearchCriteria.SearchType == DownloadSearchType.Episode) { VM_AnimeEpisode_User ep = CurrentSearchCriteria.Episode as VM_AnimeEpisode_User; if (ep.AniDB_Anime == null) { ep.RefreshAnime(); } if (ep.AniDB_Anime != null) { List <CL_GroupVideoQuality> summ = VM_ShokoServer.Instance.ShokoServices.GetGroupVideoQualitySummary(ep.AniDB_Anime.AnimeID).CastList <CL_GroupVideoQuality>(); foreach (CL_GroupVideoQuality vidQual in summ) { vidQualListTemp.Add(vidQual); } } } if (CurrentSearchCriteria.SearchType == DownloadSearchType.Series) { VM_AniDB_Anime anime = CurrentSearchCriteria.Anime as VM_AniDB_Anime; if (anime != null) { List <CL_GroupVideoQuality> summ = VM_ShokoServer.Instance.ShokoServices.GetGroupVideoQualitySummary(anime.AnimeID).CastList <CL_GroupVideoQuality>(); foreach (CL_GroupVideoQuality vidQual in summ) { vidQualListTemp.Add(vidQual); } } } ShowSubGroupSuggestions(vidQualListTemp); TorrentSearchStatus = string.Format(Shoko.Commons.Properties.Resources.Downloads_Results, links.Count); } catch (Exception ex) { Utils.ShowErrorMessage(ex); } finally { Cursor = Cursors.Arrow; IsEnabled = true; } }
void btnTvDBLinkAdd_Click(object sender, RoutedEventArgs e) { try { // get the current tvdb link VM_AnimeEpisode_User ep = DataContext as VM_AnimeEpisode_User; ep.RefreshAnime(); if (ep.AniDB_Anime == null || ep.AniDB_Anime.TvSummary == null || ep.AniDB_Anime.TvSummary.CrossRefTvDBV2 == null || ep.AniDB_Anime.TvSummary.CrossRefTvDBV2.Count == 0) { Utils.ShowErrorMessage(Shoko.Commons.Properties.Resources.EpisodeDetail_TvDBLink); return; } Window wdw = Window.GetWindow(this); Cursor = Cursors.Wait; SelectTvDBEpisodeForm frm = new SelectTvDBEpisodeForm(); frm.Owner = wdw; frm.Init(ep, ep.AniDB_Anime); bool?result = frm.ShowDialog(); if (result.Value) { // update info CL_AnimeEpisode_User contract = VM_ShokoServer.Instance.ShokoServices.GetEpisode( ep.AnimeEpisodeID, VM_ShokoServer.Instance.CurrentUser.JMMUserID); if (contract != null) { ep.RefreshAnime(true); ep.Populate(contract); ep.SetTvDBInfo(); } } Cursor = Cursors.Arrow; } catch (Exception ex) { Utils.ShowErrorMessage(ex); } }
public void DisplayFiles() { try { VM_AnimeEpisode_User ep = DataContext as VM_AnimeEpisode_User; if (ep != null) { ep.RefreshFilesForEpisode(); ep.RefreshAnime(); fileSummary.DataContext = null; fileSummary.DataContext = ep.AniDB_Anime; lbFiles.ItemsSource = ep.FilesForEpisode; } } catch (Exception ex) { Utils.ShowErrorMessage(ex); } }
void btnTvDBLinkRemove_Click(object sender, RoutedEventArgs e) { try { // get the current tvdb link VM_AnimeEpisode_User ep = DataContext as VM_AnimeEpisode_User; Window wdw = Window.GetWindow(this); Cursor = Cursors.Wait; string res = VM_ShokoServer.Instance.ShokoServices.RemoveLinkAniDBTvDBEpisode(ep.AniDB_EpisodeID); if (res.Length > 0) { Cursor = Cursors.Arrow; Utils.ShowErrorMessage(res); return; } // update info VM_AnimeEpisode_User contract = (VM_AnimeEpisode_User)VM_ShokoServer.Instance.ShokoServices.GetEpisode( ep.AnimeEpisodeID, VM_ShokoServer.Instance.CurrentUser.JMMUserID); if (contract != null) { ep.RefreshAnime(true); ep.Populate(contract); ep.SetTvDBInfo(); } Cursor = Cursors.Arrow; } catch (Exception ex) { Utils.ShowErrorMessage(ex); } }