private void CommandBinding_ReportTraktLink(object sender, ExecutedRoutedEventArgs e) { object obj = e.Parameter; if (obj == null) { return; } try { if (obj.GetType() == typeof(CrossRef_AniDB_TvDBVMV2)) { CrossRef_AniDB_TraktVMV2 link = obj as CrossRef_AniDB_TraktVMV2; AniDB_AnimeVM anime = this.DataContext as AniDB_AnimeVM; if (anime == null) { return; } this.Cursor = Cursors.Wait; } } catch (Exception ex) { Utils.ShowErrorMessage(ex); } finally { this.Cursor = Cursors.Arrow; } }
private void CommandBinding_DeleteTraktLink(object sender, ExecutedRoutedEventArgs e) { object obj = e.Parameter; if (obj == null) { return; } try { if (obj.GetType() == typeof(CrossRef_AniDB_TraktVMV2)) { CrossRef_AniDB_TraktVMV2 link = obj as CrossRef_AniDB_TraktVMV2; AniDB_AnimeVM anime = this.DataContext as AniDB_AnimeVM; if (anime == null) { return; } this.Cursor = Cursors.Wait; Window wdw = Window.GetWindow(this); string msg = string.Format("Are you sure you want to delete this link?"); MessageBoxResult result = MessageBox.Show(msg, "Confirm", MessageBoxButton.YesNo, MessageBoxImage.Warning); if (result == MessageBoxResult.Yes) { this.Cursor = Cursors.Wait; string res = JMMServerVM.Instance.clientBinaryHTTP.RemoveLinkAniDBTrakt(link.AnimeID, link.AniDBStartEpisodeType, link.AniDBStartEpisodeNumber, link.TraktID, link.TraktSeasonNumber, link.TraktStartEpisodeNumber); if (res.Length > 0) { MessageBox.Show(res, "Error", MessageBoxButton.OK, MessageBoxImage.Error); } else { // update info RefreshData(); } this.Cursor = Cursors.Arrow; } } } catch (Exception ex) { Utils.ShowErrorMessage(ex); } finally { this.Cursor = Cursors.Arrow; } }
void dgTraktResults_SelectionChanged(object sender, SelectionChangedEventArgs e) { e.Handled = true; CrossRef_AniDB_TraktVMV2 xref = ((DataGrid)sender).SelectedItem as CrossRef_AniDB_TraktVMV2; if (xref == null) { return; } webAniDB.Navigate(xref.AniDBURL); webOther.Navigate(xref.ShowURL); }
private void CommandBinding_Revoke(object sender, ExecutedRoutedEventArgs e) { Window parentWindow = Window.GetWindow(this); object obj = e.Parameter; if (obj == null) { return; } try { if (obj.GetType() == typeof(CrossRef_AniDB_TvDBVMV2)) { CrossRef_AniDB_TvDBVMV2 xref = obj as CrossRef_AniDB_TvDBVMV2; string res = JMMServerVM.Instance.clientBinaryHTTP.RevokeTVDBCrossRefWebCache(xref.CrossRef_AniDB_TvDBV2ID); if (string.IsNullOrEmpty(res)) { xref.IsAdminApproved = 0; } else { MessageBox.Show(res, Properties.Resources.Error, MessageBoxButton.OK, MessageBoxImage.Error); } } if (obj.GetType() == typeof(CrossRef_AniDB_TraktVMV2)) { CrossRef_AniDB_TraktVMV2 xref = obj as CrossRef_AniDB_TraktVMV2; string res = JMMServerVM.Instance.clientBinaryHTTP.RevokeTraktCrossRefWebCache(xref.CrossRef_AniDB_TraktV2ID); if (string.IsNullOrEmpty(res)) { xref.IsAdminApproved = 0; } else { MessageBox.Show(res, Properties.Resources.Error, MessageBoxButton.OK, MessageBoxImage.Error); } } } catch (Exception ex) { Utils.ShowErrorMessage(ex); } }
void btnSearch_Click(object sender, RoutedEventArgs e) { TraktSeriesSearchResults.Clear(); CrossRef_AniDB_TraktResult.Clear(); HasWebCacheRec = false; if (!JMMServerVM.Instance.ServerOnline) { return; } this.Cursor = Cursors.Wait; try { // first find what the community recommends List <JMMServerBinary.Contract_Azure_CrossRef_AniDB_Trakt> xrefs = JMMServerVM.Instance.clientBinaryHTTP.GetTraktCrossRefWebCache(AnimeID, false); if (xrefs != null && xrefs.Count > 0) { foreach (JMMServerBinary.Contract_Azure_CrossRef_AniDB_Trakt xref in xrefs) { CrossRef_AniDB_TraktVMV2 xrefAzure = new CrossRef_AniDB_TraktVMV2(xref); CrossRef_AniDB_TraktResult.Add(xrefAzure); } HasWebCacheRec = true; } // now search Trakt List <JMMServerBinary.Contract_TraktTVShowResponse> traktResults = JMMServerVM.Instance.clientBinaryHTTP.SearchTrakt(txtSearch.Text.Trim()); foreach (JMMServerBinary.Contract_TraktTVShowResponse traktResult in traktResults) { TraktSeriesSearchResults.Add(new TraktTVShowResponseVM(traktResult)); } } catch (Exception ex) { Utils.ShowErrorMessage(ex); } finally { this.Cursor = Cursors.Arrow; } }
private void CommandBinding_EditTraktLink(object sender, ExecutedRoutedEventArgs e) { object obj = e.Parameter; if (obj == null) { return; } try { if (obj.GetType() == typeof(CrossRef_AniDB_TraktVMV2)) { CrossRef_AniDB_TraktVMV2 link = obj as CrossRef_AniDB_TraktVMV2; AniDB_AnimeVM anime = this.DataContext as AniDB_AnimeVM; if (anime == null) { return; } Window wdw = Window.GetWindow(this); this.Cursor = Cursors.Wait; SelectTraktSeasonForm frm = new SelectTraktSeasonForm(); frm.Owner = wdw; frm.Init(anime.AnimeID, anime.FormattedTitle, (EpisodeType)link.AniDBStartEpisodeType, link.AniDBStartEpisodeNumber, link.TraktID, link.TraktSeasonNumber, link.TraktStartEpisodeNumber, link.TraktTitle, anime, link.CrossRef_AniDB_TraktV2ID); bool?result = frm.ShowDialog(); if (result.Value) { // update info RefreshData(); } } } catch (Exception ex) { Utils.ShowErrorMessage(ex); } finally { this.Cursor = Cursors.Arrow; } }
void searchTraktWorker_DoWork(object sender, DoWorkEventArgs e) { SearchTraktResults res = new SearchTraktResults(); res.ErrorMessage = string.Empty; res.TraktLinks = new List <CrossRef_AniDB_TraktVMV2>(); res.ExtraInfo = string.Empty; try { SearchCriteria crit = e.Argument as SearchCriteria; if (!string.IsNullOrEmpty(crit.ExtraInfo)) { res.ExtraInfo = crit.ExtraInfo; } try { List <JMMServerBinary.Contract_Azure_CrossRef_AniDB_Trakt> xrefs = JMMServerVM.Instance.clientBinaryHTTP.GetTraktCrossRefWebCache(crit.AnimeID, true); if (xrefs != null && xrefs.Count > 0) { foreach (JMMServerBinary.Contract_Azure_CrossRef_AniDB_Trakt xref in xrefs) { CrossRef_AniDB_TraktVMV2 xrefAzure = new CrossRef_AniDB_TraktVMV2(xref); res.TraktLinks.Add(xrefAzure); } } } catch (Exception ex) { res.ErrorMessage = ex.Message; } e.Result = res; } catch (Exception ex) { res.ErrorMessage = ex.Message; e.Result = res; } }
void dataWorker_DoWork(object sender, DoWorkEventArgs e) { TraktWorkerJob job = e.Argument as TraktWorkerJob; BackgroundWorker worker = sender as BackgroundWorker; // Get all the seies data List <JMMServerBinary.Contract_AnimeSeries> sersRaw = JMMServerVM.Instance.clientBinaryHTTP.GetAllSeries(JMMServerVM.Instance.CurrentUser.JMMUserID.Value); List <AnimeSeriesVM> allSeries = new List <AnimeSeriesVM>(); foreach (JMMServerBinary.Contract_AnimeSeries contract in sersRaw) { AnimeSeriesVM ser = new AnimeSeriesVM(contract); allSeries.Add(ser); if (stopWorker) { return; } } List <SortPropOrFieldAndDirection> sortCriteria = new List <SortPropOrFieldAndDirection>(); sortCriteria.Add(new SortPropOrFieldAndDirection("SeriesName", false, SortType.eString)); allSeries = Sorting.MultiSort <AnimeSeriesVM>(allSeries, sortCriteria); if (stopWorker) { return; } System.Windows.Application.Current.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, (Action) delegate() { WorkerStatus = JMMClient.Properties.Resources.Community_TraktRef; }); // get all the trakt links List <CrossRef_AniDB_TraktVMV2> allTraktCrossRefs = new List <CrossRef_AniDB_TraktVMV2>(); List <JMMServerBinary.Contract_CrossRef_AniDB_TraktV2> traktxrefs = JMMServerVM.Instance.clientBinaryHTTP.GetAllTraktCrossRefs(); foreach (JMMServerBinary.Contract_CrossRef_AniDB_TraktV2 raw in traktxrefs) { allTraktCrossRefs.Add(new CrossRef_AniDB_TraktVMV2(raw)); if (stopWorker) { return; } } int counter = 0; int problemCount = 0; foreach (AnimeSeriesVM ser in allSeries) { counter++; //Thread.Sleep(200); dataWorker.ReportProgress(0, new TraktWorkerStatusContainer(JMMClient.Properties.Resources.Community_TraktPopulating, allSeries.Count, counter, ser.SeriesName)); TraktSeriesData trakt = new TraktSeriesData(ser); // populate the Trakt data trakt.SetUserTraktLinks(allTraktCrossRefs.Where(x => x.AnimeID == ser.AniDB_ID)); System.Windows.Application.Current.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, (Action) delegate() { job.TraktData.Add(trakt); }); if (stopWorker) { return; } } if (stopWorker) { return; } int curFile = 0; foreach (TraktSeriesData data in job.TraktData) { if (stopWorker) { return; } //Thread.Sleep(250); if (problemCount == job.MaxProblems) { return; } curFile++; dataWorker.ReportProgress(0, new TraktWorkerStatusContainer(JMMClient.Properties.Resources.Community_TraktSeriesCheck, job.TraktData.Count, curFile, data.SeriesName)); if (stopWorker) { return; } if (job.CheckTraktLinks) { data.Status = JMMClient.Properties.Resources.Community_TraktDataCheck; bool valid = true; if (data.HasUserTraktLink) { foreach (CrossRef_AniDB_TraktVMV2 xref in data.UserTraktLinks) { bool thisValid = JMMServerVM.Instance.clientBinaryHTTP.CheckTraktLinkValidity(xref.TraktID, job.FixTraktLinks); if (!thisValid) { valid = false; problemCount++; } } data.IsTraktLinkValid = valid; } } if (stopWorker) { return; } if (job.CheckCommunityLinks) { data.Status = JMMClient.Properties.Resources.Community_TraktCompare; List <JMMServerBinary.Contract_Azure_CrossRef_AniDB_Trakt> xrefs = JMMServerVM.Instance.clientBinaryHTTP.GetTraktCrossRefWebCache(data.AnimeID, false); List <CrossRef_AniDB_TraktVMV2> commTraktLinks = new List <CrossRef_AniDB_TraktVMV2>(); foreach (JMMServerBinary.Contract_Azure_CrossRef_AniDB_Trakt xref in xrefs) { CrossRef_AniDB_TraktVMV2 xrefComm = new CrossRef_AniDB_TraktVMV2(xref); commTraktLinks.Add(xrefComm); } data.SetCommTraktLinks(commTraktLinks); if (data.HasUserTraktLink) { data.CompareTraktLinks(); if (!data.UserTraktLinkMatch && data.HasCommTraktLink) { problemCount++; } } else { } } } }
void communityWorker_DoWork(object sender, DoWorkEventArgs e) { SearchCommunityResults res = new SearchCommunityResults(); res.ErrorMessage = string.Empty; res.TvDBLinks = new List <CrossRef_AniDB_TvDBVMV2>(); res.TraktLinks = new List <CrossRef_AniDB_TraktVMV2>(); res.ExtraInfo = string.Empty; res.AnimeID = -1; try { AniDB_AnimeVM anime = e.Argument as AniDB_AnimeVM; if (anime == null) { return; } res.AnimeID = anime.AnimeID; SearchCriteria crit = new SearchCriteria(); crit.AnimeID = anime.AnimeID; crit.ExtraInfo = string.Empty; // search for TvDB links try { List <JMMServerBinary.Contract_Azure_CrossRef_AniDB_TvDB> xrefs = JMMServerVM.Instance.clientBinaryHTTP.GetTVDBCrossRefWebCache(crit.AnimeID, true); if (xrefs != null && xrefs.Count > 0) { foreach (JMMServerBinary.Contract_Azure_CrossRef_AniDB_TvDB xref in xrefs) { CrossRef_AniDB_TvDBVMV2 xrefAzure = new CrossRef_AniDB_TvDBVMV2(xref); res.TvDBLinks.Add(xrefAzure); } } } catch (Exception ex) { res.ErrorMessage = ex.Message; } // search for Trakt links try { List <JMMServerBinary.Contract_Azure_CrossRef_AniDB_Trakt> xrefs = JMMServerVM.Instance.clientBinaryHTTP.GetTraktCrossRefWebCache(crit.AnimeID, true); if (xrefs != null && xrefs.Count > 0) { foreach (JMMServerBinary.Contract_Azure_CrossRef_AniDB_Trakt xref in xrefs) { CrossRef_AniDB_TraktVMV2 xrefAzure = new CrossRef_AniDB_TraktVMV2(xref); res.TraktLinks.Add(xrefAzure); } } } catch (Exception ex) { res.ErrorMessage = ex.Message; } e.Result = res; } catch (Exception ex) { res.ErrorMessage = ex.Message; e.Result = res; } }