public static string GetPosterPath(this CL_AniDB_Anime_Relation aniDbAnimeRelationVm) { if (aniDbAnimeRelationVm.AniDB_Anime != null) { return(((VM_AniDB_Anime)aniDbAnimeRelationVm.AniDB_Anime).PosterPath); } return(String.Empty); }
public static CL_AniDB_Anime_Relation ToClient(this AniDB_Anime_Relation ar, SVR_AniDB_Anime anime, SVR_AnimeSeries ser, int userID) { CL_AniDB_Anime_Relation cl = new CL_AniDB_Anime_Relation { AniDB_Anime_RelationID = ar.AniDB_Anime_RelationID, AnimeID = ar.AnimeID, RelationType = ar.RelationType, RelatedAnimeID = ar.RelatedAnimeID }; cl.AniDB_Anime = anime?.Contract?.AniDBAnime; cl.AnimeSeries = ser?.GetUserContract(userID); return(cl); }
// triggered when a selection change was made on the facade private void onFacadeItemSelected(GUIListItem item, GUIControl parent) { // if this is not a message from the facade, exit //if (parent != m_Facade) // return; if (item.TVTag != null) { CL_AniDB_Anime_Relation ra = item.TVTag as CL_AniDB_Anime_Relation; if (ra != null) { SetAnime(ra); } } }
private void SetAnime(CL_AniDB_Anime_Relation ra) { VM_AniDB_Anime anime = (VM_AniDB_Anime)ra.AniDB_Anime; ClearGUIProperty(GuiProperty.Related_Status); if (dummyHasSeries != null) { dummyHasSeries.Visible = false; } if (dummyHasSeries != null && ra.AnimeSeries != null) { dummyHasSeries.Visible = false; } if (anime != null) { SetGUIProperty(GuiProperty.Related_Title, anime.MainTitle); SetGUIProperty(GuiProperty.Related_Episodes, anime.EpisodeCountNormal.ToString(Globals.Culture) + " (" + anime.EpisodeCountSpecial.ToString(Globals.Culture) + " " + Translation.Specials + ")"); SetGUIProperty(GuiProperty.Related_Year, anime.AirDateAsString); SetGUIProperty(GuiProperty.Related_Description, anime.ParsedDescription); SetGUIProperty(GuiProperty.Related_Genre, anime.TagsFormatted); SetGUIProperty(GuiProperty.Related_GenreShort, anime.TagsFormattedShort); if (string.IsNullOrEmpty(ra.RelationType)) { SetGUIProperty(GuiProperty.Related_Relationship, string.Empty); } else { SetGUIProperty(GuiProperty.Related_Relationship, $"({ra.RelationType})"); } } else { ClearGUIProperty(GuiProperty.Related_Title); ClearGUIProperty(GuiProperty.Related_Episodes); ClearGUIProperty(GuiProperty.Related_Year); ClearGUIProperty(GuiProperty.Related_Description); ClearGUIProperty(GuiProperty.Related_Genre); ClearGUIProperty(GuiProperty.Related_GenreShort); ClearGUIProperty(GuiProperty.Related_Relationship); } SetGUIProperty(GuiProperty.Related_Status, ra.AnimeSeries != null ? (ra.AnimeSeries.MissingEpisodeCount > 0 ? Translation.Collecting : Translation.AllEpisodesAvailable) : Translation.NotInMyCollection); }
protected override void OnClicked(int controlId, GUIControl control, MediaPortal.GUI.Library.Action.ActionType actionType) { //BaseConfig.MyAnimeLog.Write("OnClicked: {0}", controlId.ToString()); MainMenu menu = new MainMenu(); menu.Add(btnGetMissingInfo, () => { SetGUIProperty(GuiProperty.Related_DownloadStatus, Translation.WaitingOnServer + "..."); m_Facade.Focus = true; MainWindow.ServerHelper.DownloadRelatedAnime(mainAnime.AnimeID); }); if (menu.Check(control)) { return; } if (control == this.m_Facade) { CL_AniDB_Anime_Relation ra = m_Facade.SelectedListItem.TVTag as CL_AniDB_Anime_Relation; if (ra != null && ra.AnimeSeries != null && ra.AnimeSeries.AnimeSeriesID != 0) { // show relations for this anime MainWindow.GlobalSeriesID = ra.AnimeSeries.AnimeSeriesID; GUIWindowManager.CloseCurrentWindow(); GUIWindowManager.ActivateWindow(Constants.WindowIDs.RELATIONS, false); } else { Utils.DialogMsg(Translation.Error, Translation.YouDontHaveTheSeries); return; } } base.OnClicked(controlId, control, actionType); }
private void ShowRelations() { GUIControl.ClearControl(this.GetID, m_Facade.GetID); if (dummyRelationsExist != null) { if (relations.Count > 0) { dummyRelationsExist.Visible = true; } else { dummyRelationsExist.Visible = false; } } string imagePathMissing = GUIGraphicsContext.Skin + @"\Media\MyAnime3\anime3_question_poster.png"; string imagePathNoPicture = GUIGraphicsContext.Skin + @"\Media\MyAnime3\anime3_blankchar.png"; BaseConfig.MyAnimeLog.Write("CharWindow.GlobalSeriesID = {0}", MainWindow.GlobalSeriesID.ToString()); BaseConfig.MyAnimeLog.Write("CharWindow.Relations count = " + relations.Count); if (relations?.Count > 0) { foreach (CL_AniDB_Anime_Relation ra in relations) { string imagePath = ""; if (ra.AniDB_Anime != null && ra.AnimeSeries != null) { BaseConfig.MyAnimeLog.Write("AnimeID: " + MainWindow.GlobalSeriesID + ", Related ID: " + ra.AniDB_Anime.AnimeID.ToString()); BaseConfig.MyAnimeLog.Write("Poster Path: " + ((VM_AniDB_Anime)ra.AniDB_Anime).DefaultPosterPath); VM_AniDB_Anime anime = (VM_AniDB_Anime)ra.AniDB_Anime; // try and load the series VM_AnimeSeries_User serAnime = (VM_AnimeSeries_User)ra.AnimeSeries; if (serAnime != null) { string posterName = ImageAllocator.GetSeriesImageAsFileName(serAnime, GUIFacadeControl.Layout.Filmstrip); if (File.Exists(posterName)) { imagePath = posterName; } } if (imagePath.Length == 0) { if (anime.DefaultPosterPath.Trim().Length > 0 && File.Exists(anime.DefaultPosterPath)) { imagePath = anime.DefaultPosterPath; } else { imagePath = imagePathNoPicture; } } } else { imagePath = imagePathMissing; } // If it has no title skip it as it's probably an invalid item if (!string.IsNullOrEmpty(ra.AniDB_Anime?.MainTitle)) { GUIListItem item = new GUIListItem(); item.IconImage = item.IconImageBig = imagePath; item.TVTag = ra; item.OnItemSelected += new GUIListItem.ItemSelectedHandler(onFacadeItemSelected); m_Facade.Add(item); } } } if (m_Facade.Count > 0) { m_Facade.SelectedListItemIndex = 0; CL_AniDB_Anime_Relation ra = m_Facade.SelectedListItem?.TVTag as CL_AniDB_Anime_Relation; if (ra != null) { SetAnime(ra); } } //GUIControl.FocusControl(GetID, 50); }