/// <summary> /// Removes all tvdb links for one anime /// </summary> /// <param name="animeID"></param> /// <returns></returns> public string RemoveLinkAniDBTvDBForAnime(int animeID) { try { AnimeSeriesRepository repSeries = new AnimeSeriesRepository(); AnimeSeries ser = repSeries.GetByAnimeID(animeID); if (ser == null) return "Could not find Series for Anime!"; CrossRef_AniDB_TvDBV2Repository repCrossRef= new CrossRef_AniDB_TvDBV2Repository(); List<CrossRef_AniDB_TvDBV2> xrefs = repCrossRef.GetByAnimeID(animeID); if (xrefs == null) return ""; AniDB_Anime_DefaultImageRepository repDefaults = new AniDB_Anime_DefaultImageRepository(); foreach (CrossRef_AniDB_TvDBV2 xref in xrefs) { // check if there are default images used associated List<AniDB_Anime_DefaultImage> images = repDefaults.GetByAnimeID(animeID); foreach (AniDB_Anime_DefaultImage image in images) { if (image.ImageParentType == (int)JMMImageType.TvDB_Banner || image.ImageParentType == (int)JMMImageType.TvDB_Cover || image.ImageParentType == (int)JMMImageType.TvDB_FanArt) { if (image.ImageParentID == xref.TvDBID) repDefaults.Delete(image.AniDB_Anime_DefaultImageID); } } TvDBHelper.RemoveLinkAniDBTvDB(xref.AnimeID, (enEpisodeType)xref.AniDBStartEpisodeType, xref.AniDBStartEpisodeNumber, xref.TvDBID, xref.TvDBSeasonNumber, xref.TvDBStartEpisodeNumber); } return ""; } catch (Exception ex) { logger.ErrorException(ex.ToString(), ex); return ex.Message; } }
public string SetDefaultImage(bool isDefault, int animeID, int imageID, int imageType, int imageSizeType) { try { AniDB_Anime_DefaultImageRepository repDefaults = new AniDB_Anime_DefaultImageRepository(); JMMImageType imgType = (JMMImageType)imageType; ImageSizeType sizeType = ImageSizeType.Poster; switch (imgType) { case JMMImageType.AniDB_Cover: case JMMImageType.TvDB_Cover: case JMMImageType.MovieDB_Poster: case JMMImageType.Trakt_Poster: sizeType = ImageSizeType.Poster; break; case JMMImageType.TvDB_Banner: sizeType = ImageSizeType.WideBanner; break; case JMMImageType.TvDB_FanArt: case JMMImageType.MovieDB_FanArt: case JMMImageType.Trakt_Fanart: sizeType = ImageSizeType.Fanart; break; } if (!isDefault) { // this mean we are removing an image as deafult // which esssential means deleting the record AniDB_Anime_DefaultImage img = repDefaults.GetByAnimeIDAndImagezSizeType(animeID, (int)sizeType); if (img != null) repDefaults.Delete(img.AniDB_Anime_DefaultImageID); } else { // making the image the default for it's type (poster, fanart etc) AniDB_Anime_DefaultImage img = repDefaults.GetByAnimeIDAndImagezSizeType(animeID, (int)sizeType); if (img == null) img = new AniDB_Anime_DefaultImage(); img.AnimeID = animeID; img.ImageParentID = imageID; img.ImageParentType = (int)imgType; img.ImageType = (int)sizeType; repDefaults.Save(img); } return ""; } catch (Exception ex) { logger.ErrorException(ex.ToString(), ex); return ex.Message; } }
public string RemoveLinkAniDBTraktForAnime(int animeID) { try { AnimeSeriesRepository repSeries = new AnimeSeriesRepository(); AnimeSeries ser = repSeries.GetByAnimeID(animeID); if (ser == null) return "Could not find Series for Anime!"; // check if there are default images used associated AniDB_Anime_DefaultImageRepository repDefaults = new AniDB_Anime_DefaultImageRepository(); List<AniDB_Anime_DefaultImage> images = repDefaults.GetByAnimeID(animeID); foreach (AniDB_Anime_DefaultImage image in images) { if (image.ImageParentType == (int)JMMImageType.Trakt_Fanart || image.ImageParentType == (int)JMMImageType.Trakt_Poster) { repDefaults.Delete(image.AniDB_Anime_DefaultImageID); } } CrossRef_AniDB_TraktV2Repository repXrefTrakt = new CrossRef_AniDB_TraktV2Repository(); foreach (CrossRef_AniDB_TraktV2 xref in repXrefTrakt.GetByAnimeID(animeID)) { TraktTVHelper.RemoveLinkAniDBTrakt(animeID, (enEpisodeType)xref.AniDBStartEpisodeType, xref.AniDBStartEpisodeNumber, xref.TraktID, xref.TraktSeasonNumber, xref.TraktStartEpisodeNumber); } return ""; } catch (Exception ex) { logger.ErrorException(ex.ToString(), ex); return ex.Message; } }
public string RemoveLinkAniDBTvDB(int animeID, int aniEpType, int aniEpNumber, int tvDBID, int tvSeasonNumber, int tvEpNumber) { try { AnimeSeriesRepository repSeries = new AnimeSeriesRepository(); AnimeSeries ser = repSeries.GetByAnimeID(animeID); if (ser == null) return "Could not find Series for Anime!"; // check if there are default images used associated AniDB_Anime_DefaultImageRepository repDefaults = new AniDB_Anime_DefaultImageRepository(); List<AniDB_Anime_DefaultImage> images = repDefaults.GetByAnimeID(animeID); foreach (AniDB_Anime_DefaultImage image in images) { if (image.ImageParentType == (int)JMMImageType.TvDB_Banner || image.ImageParentType == (int)JMMImageType.TvDB_Cover || image.ImageParentType == (int)JMMImageType.TvDB_FanArt) { if (image.ImageParentID == tvDBID) repDefaults.Delete(image.AniDB_Anime_DefaultImageID); } } TvDBHelper.RemoveLinkAniDBTvDB(animeID, (enEpisodeType)aniEpType, aniEpNumber, tvDBID, tvSeasonNumber, tvEpNumber); return ""; } catch (Exception ex) { logger.ErrorException(ex.ToString(), ex); return ex.Message; } }
public string RemoveLinkAniDBOther(int animeID, int crossRefType) { try { AniDB_AnimeRepository repAnime = new AniDB_AnimeRepository(); AniDB_Anime anime = repAnime.GetByAnimeID(animeID); if (anime == null) return "Could not find Anime!"; CrossRefType xrefType = (CrossRefType)crossRefType; switch (xrefType) { case CrossRefType.MovieDB: // check if there are default images used associated AniDB_Anime_DefaultImageRepository repDefaults = new AniDB_Anime_DefaultImageRepository(); List<AniDB_Anime_DefaultImage> images = repDefaults.GetByAnimeID(animeID); foreach (AniDB_Anime_DefaultImage image in images) { if (image.ImageParentType == (int)JMMImageType.MovieDB_FanArt || image.ImageParentType == (int)JMMImageType.MovieDB_Poster) { repDefaults.Delete(image.AniDB_Anime_DefaultImageID); } } MovieDBHelper.RemoveLinkAniDBMovieDB(animeID); break; } return ""; } catch (Exception ex) { logger.ErrorException(ex.ToString(), ex); return ex.Message; } }
public List<Contract_AnimeSeries> GetAllSeries(int userID) { AnimeSeriesRepository repSeries = new AnimeSeriesRepository(); AniDB_AnimeRepository repAnime = new AniDB_AnimeRepository(); AniDB_Anime_TitleRepository repTitles = new AniDB_Anime_TitleRepository(); //TODO: Custom Tags: Do I need to add custom tags for searches // get all the series List<Contract_AnimeSeries> seriesContractList = new List<Contract_AnimeSeries>(); try { DateTime start = DateTime.Now; DateTime start2 = DateTime.Now; List<AnimeSeries> series = repSeries.GetAll(); List<AniDB_Anime> animes = repAnime.GetAll(); Dictionary<int, AniDB_Anime> dictAnimes = new Dictionary<int, AniDB_Anime>(); foreach (AniDB_Anime anime in animes) dictAnimes[anime.AnimeID] = anime; TimeSpan ts2 = DateTime.Now - start2; logger.Info("GetAllSeries:Anime:RawData in {0} ms", ts2.TotalMilliseconds); start2 = DateTime.Now; // tvdb - cross refs CrossRef_AniDB_TvDBV2Repository repCrossRef = new CrossRef_AniDB_TvDBV2Repository(); List<CrossRef_AniDB_TvDBV2> allCrossRefs = repCrossRef.GetAll(); Dictionary<int, List<CrossRef_AniDB_TvDBV2>> dictCrossRefsV2 = new Dictionary<int, List<CrossRef_AniDB_TvDBV2>>(); foreach (CrossRef_AniDB_TvDBV2 xref in allCrossRefs) { if (!dictCrossRefsV2.ContainsKey(xref.AnimeID)) dictCrossRefsV2[xref.AnimeID] = new List<CrossRef_AniDB_TvDBV2>(); dictCrossRefsV2[xref.AnimeID].Add(xref); } ts2 = DateTime.Now - start2; logger.Info("GetAllSeries:TvDB CrossRefs:RawData in {0} ms", ts2.TotalMilliseconds); start2 = DateTime.Now; // tvdb - series info TvDB_SeriesRepository repTvSeries = new TvDB_SeriesRepository(); List<TvDB_Series> allTvSeries = repTvSeries.GetAll(); Dictionary<int, TvDB_Series> dictTvSeries = new Dictionary<int, TvDB_Series>(); foreach (TvDB_Series tvs in allTvSeries) dictTvSeries[tvs.SeriesID] = tvs; ts2 = DateTime.Now - start2; logger.Info("GetAllSeries:TvDB:RawData in {0} ms", ts2.TotalMilliseconds); start2 = DateTime.Now; // moviedb CrossRef_AniDB_OtherRepository repOtherCrossRef = new CrossRef_AniDB_OtherRepository(); List<CrossRef_AniDB_Other> allOtherCrossRefs = repOtherCrossRef.GetAll(); Dictionary<int, CrossRef_AniDB_Other> dictMovieCrossRefs = new Dictionary<int, CrossRef_AniDB_Other>(); foreach (CrossRef_AniDB_Other xref in allOtherCrossRefs) { if (xref.CrossRefType == (int)CrossRefType.MovieDB) dictMovieCrossRefs[xref.AnimeID] = xref; } ts2 = DateTime.Now - start2; logger.Info("GetAllSeries:MovieDB:RawData in {0} ms", ts2.TotalMilliseconds); start2 = DateTime.Now; // MAL CrossRef_AniDB_MALRepository repMALCrossRef = new CrossRef_AniDB_MALRepository(); List<CrossRef_AniDB_MAL> allMALCrossRefs = repMALCrossRef.GetAll(); Dictionary<int, List<CrossRef_AniDB_MAL>> dictMALCrossRefs = new Dictionary<int, List<CrossRef_AniDB_MAL>>(); foreach (CrossRef_AniDB_MAL xref in allMALCrossRefs) { if (!dictMALCrossRefs.ContainsKey(xref.AnimeID)) dictMALCrossRefs[xref.AnimeID] = new List<CrossRef_AniDB_MAL>(); dictMALCrossRefs[xref.AnimeID].Add(xref); } ts2 = DateTime.Now - start2; logger.Info("GetAllSeries:MAL:RawData in {0} ms", ts2.TotalMilliseconds); start2 = DateTime.Now; // user records AnimeSeries_UserRepository repSeriesUser = new AnimeSeries_UserRepository(); List<AnimeSeries_User> userRecordList = repSeriesUser.GetByUserID(userID); Dictionary<int, AnimeSeries_User> dictUserRecords = new Dictionary<int, AnimeSeries_User>(); foreach (AnimeSeries_User serUser in userRecordList) dictUserRecords[serUser.AnimeSeriesID] = serUser; ts2 = DateTime.Now - start2; logger.Info("GetAllSeries:UserRecs:RawData in {0} ms", ts2.TotalMilliseconds); start2 = DateTime.Now; // default images AniDB_Anime_DefaultImageRepository repDefImages = new AniDB_Anime_DefaultImageRepository(); List<AniDB_Anime_DefaultImage> allDefaultImages = repDefImages.GetAll(); ts2 = DateTime.Now - start2; logger.Info("GetAllSeries:DefaultImages:RawData in {0} ms", ts2.TotalMilliseconds); start2 = DateTime.Now; // titles List<AniDB_Anime_Title> allTitles = repTitles.GetAllForLocalSeries(); Dictionary<int, List<AniDB_Anime_Title>> dictTitles = new Dictionary<int, List<AniDB_Anime_Title>>(); foreach (AniDB_Anime_Title atit in allTitles) { if (!dictTitles.ContainsKey(atit.AnimeID)) dictTitles[atit.AnimeID] = new List<AniDB_Anime_Title>(); dictTitles[atit.AnimeID].Add(atit); } ts2 = DateTime.Now - start2; logger.Info("GetAllSeries:Titles:RawData in {0} ms", ts2.TotalMilliseconds); start2 = DateTime.Now; TimeSpan ts = DateTime.Now - start; logger.Info("GetAllSeries:RawData in {0} ms", ts.TotalMilliseconds); Dictionary<int, AniDB_Anime_DefaultImage> dictDefaultsPosters = new Dictionary<int, AniDB_Anime_DefaultImage>(); Dictionary<int, AniDB_Anime_DefaultImage> dictDefaultsFanart = new Dictionary<int, AniDB_Anime_DefaultImage>(); Dictionary<int, AniDB_Anime_DefaultImage> dictDefaultsWideBanner = new Dictionary<int, AniDB_Anime_DefaultImage>(); start = DateTime.Now; foreach (AniDB_Anime_DefaultImage defaultImage in allDefaultImages) { ImageSizeType sizeType = (ImageSizeType)defaultImage.ImageType; if (sizeType == ImageSizeType.Fanart) dictDefaultsFanart[defaultImage.AnimeID] = defaultImage; if (sizeType == ImageSizeType.Poster) dictDefaultsPosters[defaultImage.AnimeID] = defaultImage; if (sizeType == ImageSizeType.WideBanner) dictDefaultsWideBanner[defaultImage.AnimeID] = defaultImage; } foreach (AnimeSeries aser in series) { if (!dictAnimes.ContainsKey(aser.AniDB_ID)) continue; List<CrossRef_AniDB_TvDBV2> xrefs = new List<CrossRef_AniDB_TvDBV2>(); if (dictCrossRefsV2.ContainsKey(aser.AniDB_ID)) xrefs = dictCrossRefsV2[aser.AniDB_ID]; List<TvDB_Series> tvseriesV2 = new List<TvDB_Series>(); if (xrefs != null) { foreach (CrossRef_AniDB_TvDBV2 xref in xrefs) { if (dictTvSeries.ContainsKey(xref.TvDBID)) tvseriesV2.Add(dictTvSeries[xref.TvDBID]); } } CrossRef_AniDB_Other xrefMovie = null; if (dictMovieCrossRefs.ContainsKey(aser.AniDB_ID)) xrefMovie = dictMovieCrossRefs[aser.AniDB_ID]; List<CrossRef_AniDB_MAL> xrefMAL = null; if (dictMALCrossRefs.ContainsKey(aser.AniDB_ID)) xrefMAL = dictMALCrossRefs[aser.AniDB_ID]; MovieDB_Movie movie = null; if (xrefMovie != null) movie = xrefMovie.GetMovieDB_Movie(); AnimeSeries_User userRec = null; if (dictUserRecords.ContainsKey(aser.AnimeSeriesID)) userRec = dictUserRecords[aser.AnimeSeriesID]; List<AniDB_Anime_Title> titles = null; if (dictTitles.ContainsKey(aser.AniDB_ID)) titles = dictTitles[aser.AniDB_ID]; AniDB_Anime_DefaultImage defPoster = null; AniDB_Anime_DefaultImage defFanart = null; AniDB_Anime_DefaultImage defWideBanner = null; if (dictDefaultsPosters.ContainsKey(aser.AniDB_ID)) defPoster = dictDefaultsPosters[aser.AniDB_ID]; if (dictDefaultsFanart.ContainsKey(aser.AniDB_ID)) defFanart = dictDefaultsFanart[aser.AniDB_ID]; if (dictDefaultsWideBanner.ContainsKey(aser.AniDB_ID)) defWideBanner = dictDefaultsWideBanner[aser.AniDB_ID]; seriesContractList.Add(aser.ToContract(dictAnimes[aser.AniDB_ID], xrefs, xrefMovie, userRec, tvseriesV2, xrefMAL, true, defPoster, defFanart, defWideBanner, titles, movie)); } ts = DateTime.Now - start; logger.Info("GetAllSeries:ProcessedData in {0} ms", ts.TotalMilliseconds); } catch (Exception ex) { logger.ErrorException(ex.ToString(), ex); } return seriesContractList; }
public List<Contract_AniDBAnime> GetAllAnime() { List<Contract_AniDBAnime> contracts = new List<Contract_AniDBAnime>(); try { using (var session = JMMService.SessionFactory.OpenSession()) { DateTime start = DateTime.Now; AniDB_AnimeRepository repAnime = new AniDB_AnimeRepository(); List<AniDB_Anime> animes = repAnime.GetAll(session); AniDB_Anime_DefaultImageRepository repDefaults = new AniDB_Anime_DefaultImageRepository(); List<AniDB_Anime_DefaultImage> allDefaultImages = repDefaults.GetAll(session); Dictionary<int, AniDB_Anime_DefaultImage> dictDefaultsPosters = new Dictionary<int, AniDB_Anime_DefaultImage>(); Dictionary<int, AniDB_Anime_DefaultImage> dictDefaultsFanart = new Dictionary<int, AniDB_Anime_DefaultImage>(); Dictionary<int, AniDB_Anime_DefaultImage> dictDefaultsWideBanner = new Dictionary<int, AniDB_Anime_DefaultImage>(); foreach (AniDB_Anime_DefaultImage defaultImage in allDefaultImages) { ImageSizeType sizeType = (ImageSizeType)defaultImage.ImageType; if (sizeType == ImageSizeType.Fanart) dictDefaultsFanart[defaultImage.AnimeID] = defaultImage; if (sizeType == ImageSizeType.Poster) dictDefaultsPosters[defaultImage.AnimeID] = defaultImage; if (sizeType == ImageSizeType.WideBanner) dictDefaultsWideBanner[defaultImage.AnimeID] = defaultImage; } foreach (AniDB_Anime anime in animes) { Contract_AniDBAnime contract = anime.ToContract(); if (dictDefaultsFanart.ContainsKey(anime.AnimeID)) contract.DefaultImageFanart = dictDefaultsFanart[anime.AnimeID].ToContract(); else contract.DefaultImageFanart = null; if (dictDefaultsPosters.ContainsKey(anime.AnimeID)) contract.DefaultImagePoster = dictDefaultsPosters[anime.AnimeID].ToContract(); else contract.DefaultImagePoster = null; if (dictDefaultsWideBanner.ContainsKey(anime.AnimeID)) contract.DefaultImageWideBanner = dictDefaultsWideBanner[anime.AnimeID].ToContract(); else contract.DefaultImageWideBanner = null; contracts.Add(contract); //anime.ToContractDetailed(); } TimeSpan ts = DateTime.Now - start; logger.Info("GetAllAnimein {0} ms", ts.TotalMilliseconds); } } catch (Exception ex) { logger.ErrorException(ex.ToString(), ex); } return contracts; }
public AniDB_Anime_DefaultImage GetDefaultPoster(ISession session) { AniDB_Anime_DefaultImageRepository repDefaults = new AniDB_Anime_DefaultImageRepository(); return repDefaults.GetByAnimeIDAndImagezSizeType(session, this.AnimeID, (int)ImageSizeType.Poster); }
public string RemoveLinkAniDBTrakt(int animeID) { try { AnimeSeriesRepository repSeries = new AnimeSeriesRepository(); AnimeSeries ser = repSeries.GetByAnimeID(animeID); if (ser == null) return "Could not find Series for Anime!"; // check if there are default images used associated AniDB_Anime_DefaultImageRepository repDefaults = new AniDB_Anime_DefaultImageRepository(); List<AniDB_Anime_DefaultImage> images = repDefaults.GetByAnimeID(animeID); foreach (AniDB_Anime_DefaultImage image in images) { if (image.ImageParentType == (int)JMMImageType.Trakt_Fanart || image.ImageParentType == (int)JMMImageType.Trakt_Poster) { repDefaults.Delete(image.AniDB_Anime_DefaultImageID); } } TraktTVHelper.RemoveLinkAniDBTrakt(ser); return ""; } catch (Exception ex) { logger.ErrorException(ex.ToString(), ex); return ex.Message; } }