internal static Directory FromGroup(Contract_AnimeGroup grp, Contract_AnimeSeries ser, int userid) { Directory p = new Directory(); p.Key = ServerUrl(int.Parse(ServerSettings.JMMServerPort), MainWindow.PathAddressKodi + "/GetMetadata/" + userid + "/" + (int)JMMType.Group + "/" + grp.AnimeGroupID.ToString()); p.Title = grp.GroupName; p.Summary = grp.Description; p.Type = "show"; p.AirDate = grp.Stat_AirDate_Min.HasValue ? grp.Stat_AirDate_Min.Value : DateTime.MinValue; Contract_AniDBAnime anime = ser.AniDBAnime; if (anime != null) { Contract_AniDB_Anime_DefaultImage poster = anime.DefaultImagePoster; Contract_AniDB_Anime_DefaultImage fanart = anime.DefaultImageFanart; p.Thumb = poster != null?poster.GenPoster() : ServerUrl(int.Parse(ServerSettings.JMMServerPort), MainWindow.PathAddressKodi + "/GetSupportImage/plex_404V.png"); if (fanart != null) { p.Art = fanart.GenArt(); } } p.LeafCount = (grp.UnwatchedEpisodeCount + grp.WatchedEpisodeCount).ToString(); p.ViewedLeafCount = grp.WatchedEpisodeCount.ToString(); return(p); }
public static Video MayReplaceVideo(Directory v1, AnimeSeries ser, AniDB_Anime anime, JMMType type, int userid, bool all = true) { int epcount = all ? ser.GetAnimeEpisodesCountWithVideoLocal() : ser.GetAnimeEpisodesNormalCountWithVideoLocal(); if (epcount == 1) { List <AnimeEpisode> episodes = ser.GetAnimeEpisodes(); List <VideoLocal> l = episodes[0].GetVideoLocals(); if (l.Count > 0) { Video v2 = new Video(); try { if (PopulateVideo(v2, l[0], episodes[0], ser, anime, v1, JMMType.File, userid)) { return(v2); } } catch (Exception e) { //Fast fix if file do not exist, and still is in db. (Xml Serialization of video info will fail on null) } } } return(v1); }
public System.IO.Stream GetFilters(string uid) { JMMUser user = KodiHelper.GetUser(uid); if (user == null) { return(new MemoryStream()); } int userid = user.JMMUserID; KodiObject ret = new KodiObject(KodiHelper.NewMediaContainer("Anime", false)); if (!ret.Init()) { return(new MemoryStream()); } List <Video> dirs = new List <Video>(); try { using (var session = JMMService.SessionFactory.OpenSession()) { GroupFilterRepository repGF = new GroupFilterRepository(); List <GroupFilter> allGfs = repGF.GetAll(session); Dictionary <int, HashSet <int> > gstats = StatsCache.Instance.StatUserGroupFilter[userid]; foreach (GroupFilter gg in allGfs.ToArray()) { if ((!StatsCache.Instance.StatUserGroupFilter.ContainsKey(userid)) || (!StatsCache.Instance.StatUserGroupFilter[userid].ContainsKey(gg.GroupFilterID))) { allGfs.Remove(gg); } } AnimeGroupRepository repGroups = new AnimeGroupRepository(); allGfs.Insert(0, new GroupFilter() { GroupFilterName = "All", GroupFilterID = -999 }); foreach (GroupFilter gg in allGfs) { Random rnd = new Random(123456789); Directory pp = new Directory(); pp.Key = KodiHelper.ServerUrl(int.Parse(ServerSettings.JMMServerPort), MainWindow.PathAddressKodi + "/GetMetadata/" + userid + "/" + (int)JMMType.GroupFilter + "/" + gg.GroupFilterID); pp.PrimaryExtraKey = pp.Key; pp.Title = gg.GroupFilterName; HashSet <int> groups; groups = gg.GroupFilterID == -999 ? new HashSet <int>(repGroups.GetAllTopLevelGroups(session).Select(a => a.AnimeGroupID)) : gstats[gg.GroupFilterID]; if (groups.Count != 0) { bool repeat; int nn = 0; pp.LeafCount = groups.Count.ToString(); pp.ViewedLeafCount = "0"; do { repeat = true; int grp = groups.ElementAt(rnd.Next(groups.Count)); AnimeGroup ag = repGroups.GetByID(grp); List <AnimeSeries> sers = ag.GetSeries(session); if (sers.Count > 0) { AnimeSeries ser = sers[rnd.Next(sers.Count)]; AniDB_Anime anim = ser.GetAnime(session); if (anim != null) { ImageDetails poster = anim.GetDefaultPosterDetailsNoBlanks(session); ImageDetails fanart = anim.GetDefaultFanartDetailsNoBlanks(session); if (poster != null) { pp.Thumb = poster.GenPoster(); } if (fanart != null) { pp.Art = fanart.GenArt(); } if (poster != null) { repeat = false; } } } nn++; if ((repeat) && (nn == 15)) { repeat = false; } } while (repeat); dirs.Add(pp); } } VideoLocalRepository repVids = new VideoLocalRepository(); List <VideoLocal> vids = repVids.GetVideosWithoutEpisode(); if (vids.Count > 0) { JMMContracts.KodiContracts.Directory pp = new JMMContracts.KodiContracts.Directory(); pp.Key = pp.PrimaryExtraKey = KodiHelper.ServerUrl(int.Parse(ServerSettings.JMMServerPort), MainWindow.PathAddressKodi + "/GetMetadata/0/" + (int)JMMType.GroupUnsort + "/0"); pp.Title = "Unsort"; pp.Thumb = KodiHelper.ServerUrl(int.Parse(ServerSettings.JMMServerPort), MainWindow.PathAddressKodi + "/GetSupportImage/plex_unsort.png"); pp.LeafCount = vids.Count.ToString(); pp.ViewedLeafCount = "0"; dirs.Add(pp); } dirs = dirs.OrderBy(a => a.Title).ToList(); } ret.Childrens = dirs; return(ret.GetStream()); } catch (Exception ex) { logger.ErrorException(ex.ToString(), ex); return(new MemoryStream()); } }
public System.IO.Stream GetItemsFromSerie(int userid, string SerieId) { KodiObject ret = new KodiObject(KodiHelper.NewMediaContainer("Series", true)); if (!ret.Init()) { return(new MemoryStream()); } enEpisodeType?eptype = null; int serieID; if (SerieId.Contains("_")) { int ept; string[] ndata = SerieId.Split('_'); if (!int.TryParse(ndata[0], out ept)) { return(new MemoryStream()); } eptype = (enEpisodeType)ept; if (!int.TryParse(ndata[1], out serieID)) { return(new MemoryStream()); } } else { if (!int.TryParse(SerieId, out serieID)) { return(new MemoryStream()); } } using (var session = JMMService.SessionFactory.OpenSession()) { if (serieID == -1) { return(new MemoryStream()); } AnimeSeriesRepository repSeries = new AnimeSeriesRepository(); AnimeSeries ser = repSeries.GetByID(session, serieID); if (ser == null) { return(new MemoryStream()); } AniDB_Anime anime = ser.GetAnime(); if (anime == null) { return(new MemoryStream()); } ImageDetails fanart = anime.GetDefaultFanartDetailsNoBlanks(session); if (fanart != null) { ret.MediaContainer.Art = fanart.GenArt(); } ret.MediaContainer.Title2 = ret.MediaContainer.Title1 = anime.MainTitle; List <AnimeEpisode> episodes = ser.GetAnimeEpisodes(session).Where(a => a.GetVideoLocals(session).Count > 0).ToList(); if (eptype.HasValue) { episodes = episodes.Where(a => a.EpisodeTypeEnum == eptype.Value).ToList(); } else { List <enEpisodeType> types = episodes.Select(a => a.EpisodeTypeEnum).Distinct().ToList(); if (types.Count > 1) { List <KodiEpisodeType> eps = new List <KodiEpisodeType>(); foreach (enEpisodeType ee in types) { KodiEpisodeType k2 = new KodiEpisodeType(); KodiEpisodeType.EpisodeTypeTranslated(k2, ee, (AnimeTypes)anime.AnimeType, episodes.Count(a => a.EpisodeTypeEnum == ee)); eps.Add(k2); } List <SortPropOrFieldAndDirection> sortCriteria = new List <SortPropOrFieldAndDirection>(); sortCriteria.Add(new SortPropOrFieldAndDirection("Name", SortType.eString)); eps = Sorting.MultiSort(eps, sortCriteria); List <Video> dirs = new List <Video>(); bool isCharacterSetup_ = false; foreach (KodiEpisodeType ee in eps) { Video v = new Directory(); v.Title = ee.Name; v.Type = "season"; v.LeafCount = ee.Count.ToString(); v.ViewedLeafCount = "0"; v.Key = KodiHelper.ServerUrl(int.Parse(ServerSettings.JMMServerPort), MainWindow.PathAddressKodi + "/GetMetadata/" + userid + "/" + (int)JMMType.Serie + "/" + ee.Type + "_" + ser.AnimeSeriesID); v.Thumb = KodiHelper.ServerUrl(int.Parse(ServerSettings.JMMServerPort), MainWindow.PathAddressKodi + "/GetSupportImage/" + ee.Image); if ((ee.AnimeType == AnimeTypes.Movie) || (ee.AnimeType == AnimeTypes.OVA)) { v = KodiHelper.MayReplaceVideo((Directory)v, ser, anime, JMMType.File, userid, false); } //proper naming v.OriginalTitle = ""; foreach (AniDB_Anime_Title title in anime.GetTitles()) { if (title.TitleType == "official" || title.TitleType == "main") { v.OriginalTitle += "{" + title.TitleType + ":" + title.Language + "}" + title.Title + "|"; } } v.OriginalTitle = v.OriginalTitle.Substring(0, v.OriginalTitle.Length - 1); //proper naming end //experiment if (!isCharacterSetup_) { Characters ch = new Characters(); ch.CharactersList = new List <Character>(); ch.CharactersList = GetCharactersFromAniDB(anime); v.CharactersList = new List <Characters>(); v.CharactersList.Add(ch); isCharacterSetup_ = true; } //experimentEND dirs.Add(v); } ret.Childrens = dirs; return(ret.GetStream()); } } List <Video> vids = new List <Video>(); Contract_AnimeSeries cseries = ser.ToContract(ser.GetUserRecord(userid), true); Video nv = KodiHelper.FromSerie(cseries, userid); KodiEpisodeType k = new KodiEpisodeType(); if (eptype.HasValue) { KodiEpisodeType.EpisodeTypeTranslated(k, (enEpisodeType)eptype.Value, (AnimeTypes)anime.AnimeType, episodes.Count); } bool isCharacterSetup = false; foreach (AnimeEpisode ep in episodes) { Video v = new Video(); List <VideoLocal> locals = ep.GetVideoLocals(session); if ((locals == null) || (locals.Count == 0)) { continue; } AniDB_Episode aep = ep.AniDB_Episode; if (aep == null) { continue; } VideoLocal current = locals[0]; try { KodiHelper.PopulateVideo(v, current, ep, ser, anime, nv, JMMType.File, userid); if (eptype.HasValue) { v.ParentTitle = k.Name; } //experiment if (!isCharacterSetup) { Characters c = new Characters(); c.CharactersList = new List <Character>(); c.CharactersList = GetCharactersFromAniDB(anime); v.CharactersList = new List <Characters>(); v.CharactersList.Add(c); isCharacterSetup = true; } //experimentEND vids.Add(v); } catch (Exception e) { //Fast fix if file do not exist, and still is in db. (Xml Serialization of video info will fail on null) } } List <SortPropOrFieldAndDirection> sortCriteria2 = new List <SortPropOrFieldAndDirection>(); sortCriteria2.Add(new SortPropOrFieldAndDirection("EpNumber", SortType.eInteger)); vids = Sorting.MultiSort(vids, sortCriteria2); ret.Childrens = vids; return(ret.GetStream()); } }
public System.IO.Stream GetFilters(string uid) { JMMUser user = KodiHelper.GetUser(uid); if (user==null) return new MemoryStream(); int userid = user.JMMUserID; KodiObject ret =new KodiObject(KodiHelper.NewMediaContainer("Anime", false)); if (!ret.Init()) return new MemoryStream(); List<Video> dirs = new List<Video>(); try { using (var session = JMMService.SessionFactory.OpenSession()) { GroupFilterRepository repGF = new GroupFilterRepository(); List<GroupFilter> allGfs = repGF.GetAll(session); Dictionary<int, HashSet<int>> gstats = StatsCache.Instance.StatUserGroupFilter[userid]; foreach (GroupFilter gg in allGfs.ToArray()) { if ((!StatsCache.Instance.StatUserGroupFilter.ContainsKey(userid)) || (!StatsCache.Instance.StatUserGroupFilter[userid].ContainsKey(gg.GroupFilterID))) { allGfs.Remove(gg); } } AnimeGroupRepository repGroups = new AnimeGroupRepository(); allGfs.Insert(0, new GroupFilter() {GroupFilterName = "All", GroupFilterID = -999}); foreach (GroupFilter gg in allGfs) { Random rnd = new Random(123456789); Directory pp = new Directory(); pp.Key = KodiHelper.ServerUrl(int.Parse(ServerSettings.JMMServerPort), MainWindow.PathAddressKodi + "/GetMetadata/" + userid + "/" + (int) JMMType.GroupFilter + "/" + gg.GroupFilterID); pp.PrimaryExtraKey = pp.Key; pp.Title = gg.GroupFilterName; HashSet<int> groups; groups = gg.GroupFilterID == -999 ? new HashSet<int>(repGroups.GetAllTopLevelGroups(session).Select(a => a.AnimeGroupID)) : gstats[gg.GroupFilterID]; if (groups.Count != 0) { bool repeat; int nn = 0; pp.LeafCount = groups.Count.ToString(); pp.ViewedLeafCount = "0"; do { repeat = true; int grp = groups.ElementAt(rnd.Next(groups.Count)); AnimeGroup ag = repGroups.GetByID(grp); List<AnimeSeries> sers = ag.GetSeries(session); if (sers.Count > 0) { AnimeSeries ser = sers[rnd.Next(sers.Count)]; AniDB_Anime anim = ser.GetAnime(session); if (anim != null) { ImageDetails poster = anim.GetDefaultPosterDetailsNoBlanks(session); ImageDetails fanart = anim.GetDefaultFanartDetailsNoBlanks(session); if (poster != null) pp.Thumb = poster.GenPoster(); if (fanart != null) pp.Art = fanart.GenArt(); if (poster != null) repeat = false; } } nn++; if ((repeat) && (nn == 15)) repeat = false; } while (repeat); dirs.Add(pp); } } VideoLocalRepository repVids = new VideoLocalRepository(); List<VideoLocal> vids = repVids.GetVideosWithoutEpisode(); if (vids.Count > 0) { JMMContracts.KodiContracts.Directory pp = new JMMContracts.KodiContracts.Directory(); pp.Key = pp.PrimaryExtraKey = KodiHelper.ServerUrl(int.Parse(ServerSettings.JMMServerPort), MainWindow.PathAddressKodi + "/GetMetadata/0/" + (int) JMMType.GroupUnsort + "/0"); pp.Title = "Unsort"; pp.Thumb = KodiHelper.ServerUrl(int.Parse(ServerSettings.JMMServerPort), MainWindow.PathAddressKodi + "/GetSupportImage/plex_unsort.png"); pp.LeafCount = vids.Count.ToString(); pp.ViewedLeafCount = "0"; dirs.Add(pp); } dirs = dirs.OrderBy(a => a.Title).ToList(); } ret.Childrens = dirs; return ret.GetStream(); } catch (Exception ex) { logger.ErrorException(ex.ToString(), ex); return new MemoryStream(); } }
public System.IO.Stream GetItemsFromSerie(int userid, string SerieId) { KodiObject ret = new KodiObject(KodiHelper.NewMediaContainer("Series", true)); if (!ret.Init()) return new MemoryStream(); enEpisodeType? eptype = null; int serieID ; if (SerieId.Contains("_")) { int ept ; string[] ndata = SerieId.Split('_'); if (!int.TryParse(ndata[0], out ept)) return new MemoryStream(); eptype = (enEpisodeType) ept; if (!int.TryParse(ndata[1], out serieID)) return new MemoryStream(); } else { if (!int.TryParse(SerieId, out serieID)) return new MemoryStream(); } using (var session = JMMService.SessionFactory.OpenSession()) { if (serieID == -1) return new MemoryStream(); AnimeSeriesRepository repSeries = new AnimeSeriesRepository(); AnimeSeries ser = repSeries.GetByID(session, serieID); if (ser == null) return new MemoryStream(); AniDB_Anime anime = ser.GetAnime(); if (anime == null) return new MemoryStream(); ImageDetails fanart = anime.GetDefaultFanartDetailsNoBlanks(session); if (fanart != null) ret.MediaContainer.Art = fanart.GenArt(); ret.MediaContainer.Title2 = ret.MediaContainer.Title1 = anime.MainTitle; List<AnimeEpisode> episodes = ser.GetAnimeEpisodes(session).Where(a => a.GetVideoLocals(session).Count > 0).ToList(); if (eptype.HasValue) { episodes = episodes.Where(a => a.EpisodeTypeEnum == eptype.Value).ToList(); } else { List<enEpisodeType> types = episodes.Select(a => a.EpisodeTypeEnum).Distinct().ToList(); if (types.Count > 1) { List<KodiEpisodeType> eps = new List<KodiEpisodeType>(); foreach (enEpisodeType ee in types) { KodiEpisodeType k2 = new KodiEpisodeType(); KodiEpisodeType.EpisodeTypeTranslated(k2, ee, (AnimeTypes)anime.AnimeType, episodes.Count(a => a.EpisodeTypeEnum == ee)); eps.Add(k2); } List<SortPropOrFieldAndDirection> sortCriteria = new List<SortPropOrFieldAndDirection>(); sortCriteria.Add(new SortPropOrFieldAndDirection("Name", SortType.eString)); eps = Sorting.MultiSort(eps, sortCriteria); List<Video> dirs= new List<Video>(); bool isCharacterSetup_ = false; foreach (KodiEpisodeType ee in eps) { Video v = new Directory(); v.Title = ee.Name; v.Type = "season"; v.LeafCount = ee.Count.ToString(); v.ViewedLeafCount = "0"; v.Key = KodiHelper.ServerUrl(int.Parse(ServerSettings.JMMServerPort), MainWindow.PathAddressKodi + "/GetMetadata/" + userid + "/" + (int)JMMType.Serie + "/" + ee.Type + "_" + ser.AnimeSeriesID); v.Thumb = KodiHelper.ServerUrl(int.Parse(ServerSettings.JMMServerPort), MainWindow.PathAddressKodi + "/GetSupportImage/" + ee.Image); if ((ee.AnimeType==AnimeTypes.Movie) || (ee.AnimeType==AnimeTypes.OVA)) { v = KodiHelper.MayReplaceVideo((Directory)v, ser,anime, JMMType.File, userid, false); } //proper naming v.OriginalTitle = ""; foreach (AniDB_Anime_Title title in anime.GetTitles()) { if (title.TitleType == "official" || title.TitleType == "main") { v.OriginalTitle += "{" + title.TitleType + ":" + title.Language + "}" + title.Title + "|"; } } v.OriginalTitle = v.OriginalTitle.Substring(0, v.OriginalTitle.Length - 1); //proper naming end //experiment if (!isCharacterSetup_) { Characters ch = new Characters(); ch.CharactersList = new List<Character>(); ch.CharactersList = GetCharactersFromAniDB(anime); v.CharactersList = new List<Characters>(); v.CharactersList.Add(ch); isCharacterSetup_ = true; } //experimentEND dirs.Add(v); } ret.Childrens = dirs; return ret.GetStream(); } } List<Video> vids=new List<Video>(); Contract_AnimeSeries cseries = ser.ToContract(ser.GetUserRecord(userid), true); Video nv = KodiHelper.FromSerie(cseries, userid); KodiEpisodeType k = new KodiEpisodeType(); if (eptype.HasValue) { KodiEpisodeType.EpisodeTypeTranslated(k, (enEpisodeType) eptype.Value, (AnimeTypes) anime.AnimeType, episodes.Count); } bool isCharacterSetup = false; foreach (AnimeEpisode ep in episodes) { Video v = new Video(); List<VideoLocal> locals = ep.GetVideoLocals(session); if ((locals == null) || (locals.Count == 0)) continue; AniDB_Episode aep = ep.AniDB_Episode; if (aep == null) continue; VideoLocal current = locals[0]; try { KodiHelper.PopulateVideo(v, current, ep, ser, anime, nv, JMMType.File, userid); if (eptype.HasValue) { v.ParentTitle = k.Name; } //experiment if (!isCharacterSetup) { Characters c = new Characters(); c.CharactersList = new List<Character>(); c.CharactersList = GetCharactersFromAniDB(anime); v.CharactersList = new List<Characters>(); v.CharactersList.Add(c); isCharacterSetup = true; } //experimentEND vids.Add(v); } catch (Exception e) { //Fast fix if file do not exist, and still is in db. (Xml Serialization of video info will fail on null) } } List<SortPropOrFieldAndDirection> sortCriteria2 = new List<SortPropOrFieldAndDirection>(); sortCriteria2.Add(new SortPropOrFieldAndDirection("EpNumber", SortType.eInteger)); vids= Sorting.MultiSort(vids, sortCriteria2); ret.Childrens = vids; return ret.GetStream(); } }
public static Directory FromSerie(Contract_AnimeSeries ser, int userid) { Directory p = new Directory(); Contract_AniDBAnime anime = ser.AniDBAnime; p.Key = ServerUrl(int.Parse(ServerSettings.JMMServerPort), MainWindow.PathAddressKodi + "/GetMetadata/" + userid + "/" + (int)JMMType.Serie + "/" + ser.AnimeSeriesID); if (ser.AniDBAnime.Restricted > 0) { p.ContentRating = "R"; } p.Title = anime.MainTitle; p.Summary = anime.Description; if (string.IsNullOrEmpty(p.Summary) && ser.MovieDB_Movie != null) { p.Summary = ser.MovieDB_Movie.Overview; } if (string.IsNullOrEmpty(p.Summary) && ser.TvDB_Series != null && ser.TvDB_Series.Count > 0) { p.Summary = ser.TvDB_Series[0].Overview; } p.Type = "season"; p.AirDate = DateTime.MinValue; if (!string.IsNullOrEmpty(anime.AllCategories)) { p.Genres = new List <Tag> { new Tag { Value = anime.AllCategories.Replace("|", ",") } }; } if (!string.IsNullOrEmpty(anime.AllTags)) { p.Tags = new List <Tag> { new Tag { Value = anime.AllTags.Replace("|", ",") } }; } p.OriginalTitle = anime.AllTitles; if (anime.AirDate.HasValue) { p.AirDate = anime.AirDate.Value; p.OriginallyAvailableAt = anime.AirDate.Value.Year.ToString("0000") + "-" + anime.AirDate.Value.Month.ToString("00") + "-" + anime.AirDate.Value.Day.ToString("00"); p.Year = anime.AirDate.Value.Year.ToString(); } p.LeafCount = anime.EpisodeCount.ToString(); p.ViewedLeafCount = ser.WatchedEpisodeCount.ToString(); p.Rating = (anime.Rating / 100F).ToString(CultureInfo.InvariantCulture); p.Votes = anime.VoteCount.ToString(); List <Contract_CrossRef_AniDB_TvDBV2> ls = ser.CrossRefAniDBTvDBV2; if (ls.Count > 0) { foreach (Contract_CrossRef_AniDB_TvDBV2 c in ls) { if (c.TvDBSeasonNumber != 0) { p.Season = c.TvDBSeasonNumber.ToString(); } } } Contract_AniDB_Anime_DefaultImage poster = anime.DefaultImagePoster; Contract_AniDB_Anime_DefaultImage fanart = anime.DefaultImageFanart; p.Thumb = poster != null?poster.GenPoster() : ServerUrl(int.Parse(ServerSettings.JMMServerPort), MainWindow.PathAddressKodi + "/GetSupportImage/plex_404V.png"); if (fanart != null) { p.Art = fanart.GenArt(); } /* * List<AniDB_Anime_Character> chars = anime.GetAnimeCharacters(session); * * List<string> sey=new List<string>(); * * if (chars != null) * { * foreach (AniDB_Anime_Character c in chars) * { * AniDB_Character cha = c.GetCharacter(session); * if (cha != null) * { * AniDB_Seiyuu seiyuu = cha.GetSeiyuu(session); * if (seiyuu!=null) * sey.Add(seiyuu.SeiyuuName); * } * } * } * if (sey.Count > 0) * p.Roles = sey.Select(a => new Tag() {Value = a}).ToList(); */ //community support //CrossRef_AniDB_TraktV2Repository repCrossRef = new CrossRef_AniDB_TraktV2Repository(); //List<CrossRef_AniDB_TraktV2> Trakt = repCrossRef.GetByAnimeID(anime.AnimeID); //if (Trakt != null) //{ // if (Trakt.Count > 0) // { // p.Trakt = Trakt[0].TraktID; // } //} //CrossRef_AniDB_TvDBV2Repository repCrossRefV2 = new CrossRef_AniDB_TvDBV2Repository(); //List<CrossRef_AniDB_TvDBV2> TvDB = repCrossRefV2.GetByAnimeID(anime.AnimeID); //if (TvDB != null) //{ // if (TvDB.Count > 0) // { // p.TvDB = TvDB[0].TvDBID.ToString(); // } //} //community support END return(p); }