private void UpdateGroupAndSeriesForEpisode(AnimeEpisodeVM ep) { try { // update the attached series JMMServerBinary.Contract_AnimeSeries serContract = JMMServerVM.Instance.clientBinaryHTTP.GetSeries(ep.AnimeSeriesID, JMMServerVM.Instance.CurrentUser.JMMUserID.Value); AnimeSeriesVM ser = AllSeriesDictionary.SureGet(serContract.AnimeSeriesID); if (ser != null) { ser.Populate(serContract); // TODO update the episode list } List <JMMServerBinary.Contract_AnimeGroup> grps = JMMServerVM.Instance.clientBinaryHTTP.GetAllGroupsAboveSeries(ep.AnimeSeriesID, JMMServerVM.Instance.CurrentUser.JMMUserID.Value); foreach (JMMServerBinary.Contract_AnimeGroup grpContract in grps) { AnimeGroupVM agrp = AllGroupsDictionary.SureGet(grpContract.AnimeGroupID); agrp?.Populate(grpContract); agrp?.PopulateSerieInfo(AllGroupsDictionary, AllSeriesDictionary); } } catch (Exception ex) { Utils.ShowErrorMessage(ex); } }
public AnimeSeriesVM(JMMServerBinary.Contract_AnimeSeries contract) { CrossRef_AniDB_TvDBV2 = new List <CrossRef_AniDB_TvDBVMV2>(); TvDBSeriesV2 = new List <TvDB_SeriesVM>(); Populate(contract); }
public void RefreshBase() { JMMServerBinary.Contract_AnimeSeries contract = JMMServerVM.Instance.clientBinaryHTTP.GetSeries(AnimeSeriesID.Value, JMMServerVM.Instance.CurrentUser.JMMUserID.Value); Populate(contract); allEpisodes = null; }
public void ToggleWatchedStatus(bool watched, bool promptForRating) { bool currentStatus = IsWatched == 1; if (currentStatus == watched) { return; } JMMServerBinary.Contract_ToggleWatchedStatusOnEpisode_Response response = JMMServerVM.Instance.clientBinaryHTTP.ToggleWatchedStatusOnEpisode(AnimeEpisodeID, watched, JMMServerVM.Instance.CurrentUser.JMMUserID); if (!string.IsNullOrEmpty(response.ErrorMessage)) { BaseConfig.MyAnimeLog.Write("Error in ToggleWatchedStatus: " + response.ErrorMessage); return; } if (promptForRating && BaseConfig.Settings.DisplayRatingDialogOnCompletion) { JMMServerBinary.Contract_AnimeSeries contract = JMMServerVM.Instance.clientBinaryHTTP.GetSeries(response.AnimeEpisode.AnimeSeriesID, JMMServerVM.Instance.CurrentUser.JMMUserID); if (contract != null) { AnimeSeriesVM ser = new AnimeSeriesVM(contract); Utils.PromptToRateSeriesOnCompletion(ser); } } }
public void PopulateSeries(JMMServerBinary.Contract_AnimeSeries seriesContract) { if (seriesContract != null) { AnimeSeries = new AnimeSeriesVM(seriesContract); } EvaluateProperties(); }
public void PopulatePlaylistObjects() { PlaylistObjects.Clear(); if (string.IsNullOrEmpty(this.PlaylistItems)) { return; } string[] items = this.PlaylistItems.Split('|'); foreach (string pitem in items) { string[] parms = pitem.Split(';'); if (parms.Length != 2) { continue; } int objType = -1; int objID = -1; if (!int.TryParse(parms[0], out objType)) { continue; } if (!int.TryParse(parms[1], out objID)) { continue; } if ((PlaylistItemType)objType == PlaylistItemType.AnimeSeries) { // get the series JMMServerBinary.Contract_AnimeSeries serContract = JMMServerVM.Instance.clientBinaryHTTP.GetSeries(objID, JMMServerVM.Instance.CurrentUser.JMMUserID.Value); if (serContract != null) { AnimeSeriesVM ser = new AnimeSeriesVM(serContract); PlaylistObjects.Add(new PlaylistItemVM(this.PlaylistID.Value, PlaylistItemType.AnimeSeries, ser)); } } else { // get the episode JMMServerBinary.Contract_AnimeEpisode epContract = JMMServerVM.Instance.clientBinaryHTTP.GetEpisode(objID, JMMServerVM.Instance.CurrentUser.JMMUserID.Value); if (epContract != null) { AnimeEpisodeVM ep = new AnimeEpisodeVM(epContract); //ep.SetTvDBInfo(); PlaylistObjects.Add(new PlaylistItemVM(this.PlaylistID.Value, PlaylistItemType.Episode, ep)); } } } SetDependendProperties(); }
public static AnimeSeriesVM GetSeriesForAnime(int animeID) { try { JMMServerBinary.Contract_AnimeSeries rawSeries = JMMServerVM.Instance.clientBinaryHTTP.GetSeriesForAnime(animeID, JMMServerVM.Instance.CurrentUser.JMMUserID); if (rawSeries == null) { return(null); } return(new AnimeSeriesVM(rawSeries)); } catch (Exception ex) { BaseConfig.MyAnimeLog.Write(ex.ToString()); } return(null); }
private void UpdateGroupAndSeriesForEpisode(AnimeEpisodeVM ep) { try { // update the attached series JMMServerBinary.Contract_AnimeSeries serContract = JMMServerVM.Instance.clientBinaryHTTP.GetSeries(ep.AnimeSeriesID, JMMServerVM.Instance.CurrentUser.JMMUserID.Value); foreach (AnimeSeriesVM ser in MainListHelperVM.Instance.AllSeries) { if (ser.AnimeSeriesID == serContract.AnimeSeriesID) { ser.Populate(serContract); // TODO update the episode list break; } } List <JMMServerBinary.Contract_AnimeGroup> grps = JMMServerVM.Instance.clientBinaryHTTP.GetAllGroupsAboveSeries(ep.AnimeSeriesID, JMMServerVM.Instance.CurrentUser.JMMUserID.Value); foreach (AnimeGroupVM grp in MainListHelperVM.Instance.AllGroups) { foreach (JMMServerBinary.Contract_AnimeGroup grpContract in grps) { if (grp.AnimeGroupID.Value == grpContract.AnimeGroupID) { grp.Populate(grpContract); break; } } } } catch (Exception ex) { Utils.ShowErrorMessage(ex); } }
public void Populate(JMMServerBinary.Contract_AnimeSeries contract) { AniDB_Anime = new AniDB_AnimeVM(contract.AniDBAnime); NotifyPropertyChanged("AniDB_Anime"); MainListHelperVM.Instance.AllAnimeDictionary[AniDB_Anime.AnimeID] = AniDB_Anime; if (contract.CrossRefAniDBTvDBV2 != null) { foreach (JMMClient.JMMServerBinary.Contract_CrossRef_AniDB_TvDBV2 contractTV in contract.CrossRefAniDBTvDBV2) { CrossRef_AniDB_TvDBV2.Add(new CrossRef_AniDB_TvDBVMV2(contractTV)); } } if (contract.TvDB_Series != null) { foreach (JMMClient.JMMServerBinary.Contract_TvDB_Series contractSer in contract.TvDB_Series) { TvDBSeriesV2.Add(new TvDB_SeriesVM(contractSer)); } } if (contract.CrossRefAniDBMovieDB != null) { CrossRef_AniDB_MovieDB = new CrossRef_AniDB_OtherVM(contract.CrossRefAniDBMovieDB); } else { CrossRef_AniDB_MovieDB = null; } if (contract.CrossRefAniDBMAL != null) { CrossRef_AniDB_MAL = new List <CrossRef_AniDB_MALVM>(); foreach (JMMServerBinary.Contract_CrossRef_AniDB_MAL contractTemp in contract.CrossRefAniDBMAL) { CrossRef_AniDB_MAL.Add(new CrossRef_AniDB_MALVM(contractTemp)); } } else { CrossRef_AniDB_MAL = null; } this.AniDB_ID = contract.AniDB_ID; this.AnimeGroupID = contract.AnimeGroupID; this.AnimeSeriesID = contract.AnimeSeriesID; this.DateTimeUpdated = contract.DateTimeUpdated; this.DateTimeCreated = contract.DateTimeCreated; this.DefaultAudioLanguage = contract.DefaultAudioLanguage; this.DefaultSubtitleLanguage = contract.DefaultSubtitleLanguage; this.SeriesNameOverride = contract.SeriesNameOverride; this.DefaultFolder = contract.DefaultFolder; IsSeriesNameOverridden = !string.IsNullOrEmpty(SeriesNameOverride); IsSeriesNameNotOverridden = string.IsNullOrEmpty(SeriesNameOverride); this.LatestLocalEpisodeNumber = contract.LatestLocalEpisodeNumber; this.PlayedCount = contract.PlayedCount; this.StoppedCount = contract.StoppedCount; this.UnwatchedEpisodeCount = contract.UnwatchedEpisodeCount; this.WatchedCount = contract.WatchedCount; this.WatchedDate = contract.WatchedDate; this.EpisodeAddedDate = contract.EpisodeAddedDate; this.WatchedEpisodeCount = contract.WatchedEpisodeCount; this.MissingEpisodeCount = contract.MissingEpisodeCount; this.MissingEpisodeCountGroups = contract.MissingEpisodeCountGroups; HasMissingEpisodesAny = (MissingEpisodeCount > 0 || MissingEpisodeCountGroups > 0); HasMissingEpisodesAllDifferentToGroups = (MissingEpisodeCount > 0 && MissingEpisodeCount != MissingEpisodeCountGroups); HasMissingEpisodesGroups = MissingEpisodeCountGroups > 0; //PosterPath = AniDB_Anime.DefaultPosterPath; SetSeriesNames(); }
private void RefreshRecords() { try { IsDataLoading = true; IsDataFinishedLoading = false; AnimeFolderSummaryRecords.Clear(); TotalFileCount = 0; double fileSize = 0; AniDB_AnimeVM anime = this.DataContext as AniDB_AnimeVM; if (anime == null) { return; } JMMServerBinary.Contract_AnimeSeries contract = JMMServerVM.Instance.clientBinaryHTTP.GetSeriesForAnime(anime.AnimeID, JMMServerVM.Instance.CurrentUser.JMMUserID.Value); if (contract == null) { return; } thisSeries = new AnimeSeriesVM(contract); Dictionary <string, AnimeFolderSummary> folders = new Dictionary <string, AnimeFolderSummary>(); foreach (VideoLocalVM vid in anime.AllVideoLocals) { TotalFileCount++; fileSize += (double)vid.FileSize; if (!folders.ContainsKey(vid.FileDirectory)) { AnimeFolderSummary fs = new AnimeFolderSummary(); fs.FolderName = vid.FileDirectory; fs.FileCount = 0; fs.TotalFileSize = 0; folders[vid.FileDirectory] = fs; } folders[vid.FileDirectory].FileCount = folders[vid.FileDirectory].FileCount + 1; folders[vid.FileDirectory].TotalFileSize = folders[vid.FileDirectory].TotalFileSize + vid.FileSize; } bool foundDefault = false; foreach (AnimeFolderSummary afs in folders.Values) { afs.IsDefaultFolder = false; if (!string.IsNullOrEmpty(thisSeries.DefaultFolder)) { if (thisSeries.DefaultFolder.Equals(afs.FolderName, StringComparison.InvariantCultureIgnoreCase)) { afs.IsDefaultFolder = true; foundDefault = true; } } AnimeFolderSummaryRecords.Add(afs); } /*if (!foundDefault) * { * if (!string.IsNullOrEmpty(thisSeries.DefaultFolder)) * { * AnimeFolderSummary afs = new AnimeFolderSummary(); * afs.FolderName = thisSeries.DefaultFolder; * afs.FileCount = 0; * afs.TotalFileSize = 0; * afs.IsDefaultFolder = true; * AnimeFolderSummaryRecords.Add(afs); * } * }*/ TotalFileSize = Utils.FormatFileSize(fileSize); IsDataLoading = false; IsDataFinishedLoading = true; } catch (Exception ex) { Utils.ShowErrorMessage(ex); } }
void getDataWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { colEpisodes = e.Result as List <AnimeEpisodeVM>; if (colEpisodes == null || colEpisodes.Count == 0) { if (dummyAnyRecords != null) { dummyAnyRecords.Visible = false; } setGUIProperty("Watching.Status", "No episodes have recently been watched"); return; } if (dummyAnyRecords != null) { dummyAnyRecords.Visible = true; } foreach (AnimeEpisodeVM ep in colEpisodes) { GUIListItem item = new GUIListItem(""); AniDB_AnimeVM anime = ep.AnimeSeries.AniDB_Anime; string imagePath = GUIGraphicsContext.Skin + @"\Media\MyAnime3\anime3_question_poster.png"; if (anime.DefaultPosterPath.Trim().Length > 0) { if (File.Exists(anime.DefaultPosterPath)) { imagePath = anime.DefaultPosterPath; } } item.IconImage = item.IconImageBig = imagePath; item.TVTag = ep; item.OnItemSelected += new GUIListItem.ItemSelectedHandler(onFacadeItemSelected); m_Facade.Add(item); } if (m_Facade.Count > 0) { m_Facade.SelectedListItemIndex = 0; AnimeEpisodeVM ep = m_Facade.SelectedListItem.TVTag as AnimeEpisodeVM; if (ep != null) { SetEpisode(ep); } } if (MainWindow.animeSeriesIDToBeRated.HasValue && BaseConfig.Settings.DisplayRatingDialogOnCompletion) { JMMServerBinary.Contract_AnimeSeries contract = JMMServerVM.Instance.clientBinaryHTTP.GetSeries(MainWindow.animeSeriesIDToBeRated.Value, JMMServerVM.Instance.CurrentUser.JMMUserID); if (contract != null) { AnimeSeriesVM ser = new AnimeSeriesVM(contract); Utils.PromptToRateSeriesOnCompletion(ser); } MainWindow.animeSeriesIDToBeRated = null; } }
public void Populate(JMMServerBinary.Contract_AnimeSeries contract) { AniDB_Anime = new AniDB_AnimeVM(contract.AniDBAnime); if (contract.CrossRefAniDBTvDBV2 != null) { foreach (JMMServerBinary.Contract_CrossRef_AniDB_TvDBV2 contractTV in contract.CrossRefAniDBTvDBV2) { CrossRef_AniDB_TvDBV2.Add(new CrossRef_AniDB_TvDBVMV2(contractTV)); } } if (contract.TvDB_Series != null) { foreach (JMMServerBinary.Contract_TvDB_Series contractSer in contract.TvDB_Series) { TvDBSeriesV2.Add(new TvDB_SeriesVM(contractSer)); } } if (contract.CrossRefAniDBMovieDB != null) { CrossRef_AniDB_MovieDB = new CrossRef_AniDB_OtherVM(contract.CrossRefAniDBMovieDB); } else { CrossRef_AniDB_MovieDB = null; } if (contract.CrossRefAniDBMAL != null) { CrossRef_AniDB_MAL = new List <CrossRef_AniDB_MALVM>(); foreach (JMMServerBinary.Contract_CrossRef_AniDB_MAL contractTemp in contract.CrossRefAniDBMAL) { CrossRef_AniDB_MAL.Add(new CrossRef_AniDB_MALVM(contractTemp)); } } else { CrossRef_AniDB_MAL = null; } // read only members this.AniDB_ID = contract.AniDB_ID; this.AnimeGroupID = contract.AnimeGroupID; this.AnimeSeriesID = contract.AnimeSeriesID; this.DateTimeUpdated = contract.DateTimeUpdated; this.DateTimeCreated = contract.DateTimeCreated; this.DefaultAudioLanguage = contract.DefaultAudioLanguage; this.DefaultSubtitleLanguage = contract.DefaultSubtitleLanguage; this.SeriesNameOverride = contract.SeriesNameOverride; this.LatestLocalEpisodeNumber = contract.LatestLocalEpisodeNumber; this.PlayedCount = contract.PlayedCount; this.StoppedCount = contract.StoppedCount; this.UnwatchedEpisodeCount = contract.UnwatchedEpisodeCount; this.WatchedCount = contract.WatchedCount; this.WatchedDate = contract.WatchedDate; this.EpisodeAddedDate = contract.EpisodeAddedDate; this.WatchedEpisodeCount = contract.WatchedEpisodeCount; this.MissingEpisodeCount = contract.MissingEpisodeCount; this.MissingEpisodeCountGroups = contract.MissingEpisodeCountGroups; HasMissingEpisodesAny = (MissingEpisodeCount > 0 || MissingEpisodeCountGroups > 0); HasMissingEpisodesAllDifferentToGroups = (MissingEpisodeCount > 0 && MissingEpisodeCount != MissingEpisodeCountGroups); HasMissingEpisodesGroups = MissingEpisodeCountGroups > 0; PosterPath = AniDB_Anime.DefaultPosterPath; }