Esempio n. 1
0
        public CommandRequest_DownloadImage(int entityID, JMMImageType entityType, bool forced)
        {
            this.EntityID = entityID;
            this.EntityType = (int)entityType;
            this.ForceDownload = forced;
            this.CommandType = (int)CommandRequestType.ImageDownload;
            this.Priority = (int)DefaultPriority;

            GenerateCommandID();
        }
Esempio n. 2
0
        public CommandRequest_DownloadImage(int entityID, JMMImageType entityType, bool forced)
        {
            this.EntityID      = entityID;
            this.EntityType    = (int)entityType;
            this.ForceDownload = forced;
            this.CommandType   = (int)CommandRequestType.ImageDownload;
            this.Priority      = (int)DefaultPriority;

            GenerateCommandID();
        }
Esempio n. 3
0
        public static CL_AniDB_Anime_DefaultImage ToClient(this AniDB_Anime_DefaultImage defaultimage,
                                                           IImageEntity parentImage)
        {
            CL_AniDB_Anime_DefaultImage contract = new CL_AniDB_Anime_DefaultImage
            {
                AniDB_Anime_DefaultImageID = defaultimage.AniDB_Anime_DefaultImageID,
                AnimeID         = defaultimage.AnimeID,
                ImageParentID   = defaultimage.ImageParentID,
                ImageParentType = defaultimage.ImageParentType,
                ImageType       = defaultimage.ImageType
            };
            JMMImageType imgType = (JMMImageType)defaultimage.ImageParentType;

            switch (imgType)
            {
            case JMMImageType.TvDB_Banner:
                contract.TVWideBanner = (parentImage as TvDB_ImageWideBanner);
                break;

            case JMMImageType.TvDB_Cover:
                contract.TVPoster = (parentImage as TvDB_ImagePoster);
                break;

            case JMMImageType.TvDB_FanArt:
                contract.TVFanart = (parentImage as TvDB_ImageFanart);
                break;

            case JMMImageType.MovieDB_Poster:
                contract.MoviePoster = (parentImage as MovieDB_Poster);
                break;

            case JMMImageType.MovieDB_FanArt:
                contract.MovieFanart = (parentImage as MovieDB_Fanart);
                break;

            case JMMImageType.Trakt_Fanart:
                contract.TraktFanart = (parentImage as Trakt_ImageFanart);
                break;

            case JMMImageType.Trakt_Poster:
                contract.TraktPoster = (parentImage as Trakt_ImagePoster);
                break;
            }

            return(contract);
        }
        public Contract_AniDB_Anime_DefaultImage ToContract(IImageEntity parentImage)
        {
            var contract = new Contract_AniDB_Anime_DefaultImage
            {
                AniDB_Anime_DefaultImageID = AniDB_Anime_DefaultImageID,
                AnimeID         = AnimeID,
                ImageParentID   = ImageParentID,
                ImageParentType = ImageParentType,
                ImageType       = ImageType
            };

            JMMImageType imgType = (JMMImageType)ImageParentType;

            switch (imgType)
            {
            case JMMImageType.TvDB_Banner:
                contract.TVWideBanner = (parentImage as TvDB_ImageWideBanner)?.ToContract();
                break;

            case JMMImageType.TvDB_Cover:
                contract.TVPoster = (parentImage as TvDB_ImagePoster)?.ToContract();
                break;

            case JMMImageType.TvDB_FanArt:
                contract.TVFanart = (parentImage as TvDB_ImageFanart)?.ToContract();
                break;

            case JMMImageType.MovieDB_Poster:
                contract.MoviePoster = (parentImage as MovieDB_Poster)?.ToContract();
                break;

            case JMMImageType.MovieDB_FanArt:
                contract.MovieFanart = (parentImage as MovieDB_Fanart)?.ToContract();
                break;

            case JMMImageType.Trakt_Fanart:
                contract.TraktFanart = (parentImage as Trakt_ImageFanart)?.ToContract();
                break;

            case JMMImageType.Trakt_Poster:
                contract.TraktPoster = (parentImage as Trakt_ImagePoster)?.ToContract();
                break;
            }

            return(contract);
        }
Esempio n. 5
0
        public static CL_AniDB_Anime_DefaultImage ToClient(this AniDB_Anime_DefaultImage defaultImage,
                                                           ISessionWrapper session)
        {
            JMMImageType imgType     = (JMMImageType)defaultImage.ImageParentType;
            IImageEntity parentImage = null;

            switch (imgType)
            {
            case JMMImageType.TvDB_Banner:
                parentImage = RepoFactory.TvDB_ImageWideBanner.GetByID(session, defaultImage.ImageParentID);
                break;

            case JMMImageType.TvDB_Cover:
                parentImage = RepoFactory.TvDB_ImagePoster.GetByID(session, defaultImage.ImageParentID);
                break;

            case JMMImageType.TvDB_FanArt:
                parentImage = RepoFactory.TvDB_ImageFanart.GetByID(session, defaultImage.ImageParentID);
                break;

            case JMMImageType.MovieDB_Poster:
                parentImage = RepoFactory.MovieDB_Poster.GetByID(session, defaultImage.ImageParentID);
                break;

            case JMMImageType.MovieDB_FanArt:
                parentImage = RepoFactory.MovieDB_Fanart.GetByID(session, defaultImage.ImageParentID);
                break;

            case JMMImageType.Trakt_Fanart:
                parentImage = RepoFactory.Trakt_ImageFanart.GetByID(session, defaultImage.ImageParentID);
                break;

            case JMMImageType.Trakt_Poster:
                parentImage = RepoFactory.Trakt_ImagePoster.GetByID(session, defaultImage.ImageParentID);
                break;
            }

            return(defaultImage.ToClient(parentImage));
        }
Esempio n. 6
0
 public ImageDownloadRequest(JMMImageType imageType, object data, bool forceDownload)
 {
     this.ImageType     = imageType;
     this.ImageData     = data;
     this.ForceDownload = forceDownload;
 }
        public System.IO.Stream GetImage(string ImageType, string ImageID)
        {
            AniDB_AnimeRepository          repAnime       = new AniDB_AnimeRepository();
            TvDB_ImagePosterRepository     repPosters     = new TvDB_ImagePosterRepository();
            TvDB_EpisodeRepository         repEpisodes    = new TvDB_EpisodeRepository();
            TvDB_ImageFanartRepository     repFanart      = new TvDB_ImageFanartRepository();
            TvDB_ImageWideBannerRepository repWideBanners = new TvDB_ImageWideBannerRepository();

            MovieDB_PosterRepository repMoviePosters = new MovieDB_PosterRepository();
            MovieDB_FanartRepository repMovieFanart  = new MovieDB_FanartRepository();

            Trakt_ImageFanartRepository repTraktFanart   = new Trakt_ImageFanartRepository();
            Trakt_ImagePosterRepository repTraktPosters  = new Trakt_ImagePosterRepository();
            Trakt_EpisodeRepository     repTraktEpisodes = new Trakt_EpisodeRepository();
            Trakt_FriendRepository      repTraktFriends  = new Trakt_FriendRepository();

            JMMImageType imageType = (JMMImageType)int.Parse(ImageType);

            switch (imageType)
            {
            case JMMImageType.AniDB_Cover:

                AniDB_Anime anime = repAnime.GetByAnimeID(int.Parse(ImageID));
                if (anime == null)
                {
                    return(null);
                }

                if (File.Exists(anime.PosterPath))
                {
                    FileStream fs = File.OpenRead(anime.PosterPath);
                    WebOperationContext.Current.OutgoingResponse.ContentType = "image/jpeg";
                    return(fs);
                }
                else
                {
                    logger.Trace("Could not find AniDB_Cover image: {0}", anime.PosterPath);
                    return(BlankImage());
                }

            case JMMImageType.AniDB_Character:

                AniDB_CharacterRepository repChar = new AniDB_CharacterRepository();
                AniDB_Character           chr     = repChar.GetByID(int.Parse(ImageID));
                if (chr == null)
                {
                    return(null);
                }

                if (File.Exists(chr.PosterPath))
                {
                    FileStream fs = File.OpenRead(chr.PosterPath);
                    WebOperationContext.Current.OutgoingResponse.ContentType = "image/jpeg";
                    return(fs);
                }
                else
                {
                    logger.Trace("Could not find AniDB_Character image: {0}", chr.PosterPath);
                    return(BlankImage());
                }

            case JMMImageType.AniDB_Creator:

                AniDB_SeiyuuRepository repCreator = new AniDB_SeiyuuRepository();
                AniDB_Seiyuu           creator    = repCreator.GetByID(int.Parse(ImageID));
                if (creator == null)
                {
                    return(null);
                }

                if (File.Exists(creator.PosterPath))
                {
                    FileStream fs = File.OpenRead(creator.PosterPath);
                    WebOperationContext.Current.OutgoingResponse.ContentType = "image/jpeg";
                    return(fs);
                }
                else
                {
                    logger.Trace("Could not find AniDB_Creator image: {0}", creator.PosterPath);
                    return(BlankImage());
                }

            case JMMImageType.TvDB_Cover:

                TvDB_ImagePoster poster = repPosters.GetByID(int.Parse(ImageID));
                if (poster == null)
                {
                    return(null);
                }

                if (File.Exists(poster.FullImagePath))
                {
                    FileStream fs = File.OpenRead(poster.FullImagePath);
                    WebOperationContext.Current.OutgoingResponse.ContentType = "image/jpeg";
                    return(fs);
                }
                else
                {
                    logger.Trace("Could not find TvDB_Cover image: {0}", poster.FullImagePath);
                    return(BlankImage());
                }

            case JMMImageType.TvDB_Banner:

                TvDB_ImageWideBanner wideBanner = repWideBanners.GetByID(int.Parse(ImageID));
                if (wideBanner == null)
                {
                    return(null);
                }

                if (File.Exists(wideBanner.FullImagePath))
                {
                    FileStream fs = File.OpenRead(wideBanner.FullImagePath);
                    WebOperationContext.Current.OutgoingResponse.ContentType = "image/jpeg";
                    return(fs);
                }
                else
                {
                    logger.Trace("Could not find TvDB_Banner image: {0}", wideBanner.FullImagePath);
                    return(BlankImage());
                }

            case JMMImageType.TvDB_Episode:

                TvDB_Episode ep = repEpisodes.GetByID(int.Parse(ImageID));
                if (ep == null)
                {
                    return(null);
                }

                if (File.Exists(ep.FullImagePath))
                {
                    FileStream fs = File.OpenRead(ep.FullImagePath);
                    WebOperationContext.Current.OutgoingResponse.ContentType = "image/jpeg";
                    return(fs);
                }
                else
                {
                    logger.Trace("Could not find TvDB_Episode image: {0}", ep.FullImagePath);
                    return(BlankImage());
                }

            case JMMImageType.TvDB_FanArt:

                TvDB_ImageFanart fanart = repFanart.GetByID(int.Parse(ImageID));
                if (fanart == null)
                {
                    return(null);
                }

                if (File.Exists(fanart.FullImagePath))
                {
                    FileStream fs = File.OpenRead(fanart.FullImagePath);
                    WebOperationContext.Current.OutgoingResponse.ContentType = "image/jpeg";
                    return(fs);
                }
                else
                {
                    logger.Trace("Could not find TvDB_FanArt image: {0}", fanart.FullImagePath);
                    return(BlankImage());
                }

            case JMMImageType.MovieDB_Poster:

                MovieDB_Poster mPoster = repMoviePosters.GetByID(int.Parse(ImageID));
                if (mPoster == null)
                {
                    return(null);
                }

                // now find only the original size
                mPoster = repMoviePosters.GetByOnlineID(mPoster.URL);
                if (mPoster == null)
                {
                    return(null);
                }

                if (File.Exists(mPoster.FullImagePath))
                {
                    FileStream fs = File.OpenRead(mPoster.FullImagePath);
                    WebOperationContext.Current.OutgoingResponse.ContentType = "image/jpeg";
                    return(fs);
                }
                else
                {
                    logger.Trace("Could not find MovieDB_Poster image: {0}", mPoster.FullImagePath);
                    return(BlankImage());
                }

            case JMMImageType.MovieDB_FanArt:

                MovieDB_Fanart mFanart = repMovieFanart.GetByID(int.Parse(ImageID));
                if (mFanart == null)
                {
                    return(null);
                }

                mFanart = repMovieFanart.GetByOnlineID(mFanart.URL);
                if (mFanart == null)
                {
                    return(null);
                }

                if (File.Exists(mFanart.FullImagePath))
                {
                    FileStream fs = File.OpenRead(mFanart.FullImagePath);
                    WebOperationContext.Current.OutgoingResponse.ContentType = "image/jpeg";
                    return(fs);
                }
                else
                {
                    logger.Trace("Could not find MovieDB_FanArt image: {0}", mFanart.FullImagePath);
                    return(BlankImage());
                }

            case JMMImageType.Trakt_Fanart:

                Trakt_ImageFanart tFanart = repTraktFanart.GetByID(int.Parse(ImageID));
                if (tFanart == null)
                {
                    return(null);
                }

                if (File.Exists(tFanart.FullImagePath))
                {
                    FileStream fs = File.OpenRead(tFanart.FullImagePath);
                    WebOperationContext.Current.OutgoingResponse.ContentType = "image/jpeg";
                    return(fs);
                }
                else
                {
                    logger.Trace("Could not find Trakt_Fanart image: {0}", tFanart.FullImagePath);
                    return(BlankImage());
                }

            case JMMImageType.Trakt_Poster:

                Trakt_ImagePoster tPoster = repTraktPosters.GetByID(int.Parse(ImageID));
                if (tPoster == null)
                {
                    return(null);
                }

                if (File.Exists(tPoster.FullImagePath))
                {
                    FileStream fs = File.OpenRead(tPoster.FullImagePath);
                    WebOperationContext.Current.OutgoingResponse.ContentType = "image/jpeg";
                    return(fs);
                }
                else
                {
                    logger.Trace("Could not find Trakt_Poster image: {0}", tPoster.FullImagePath);
                    return(BlankImage());
                }

            case JMMImageType.Trakt_Episode:
            case JMMImageType.Trakt_WatchedEpisode:

                Trakt_Episode tEpisode = repTraktEpisodes.GetByID(int.Parse(ImageID));
                if (tEpisode == null)
                {
                    return(null);
                }

                if (File.Exists(tEpisode.FullImagePath))
                {
                    FileStream fs = File.OpenRead(tEpisode.FullImagePath);
                    WebOperationContext.Current.OutgoingResponse.ContentType = "image/jpeg";
                    return(fs);
                }
                else
                {
                    logger.Trace("Could not find Trakt_Episode image: {0}", tEpisode.FullImagePath);
                    return(BlankImage());
                }

            default:

                return(BlankImage());
            }
        }
        public string GetImagePath(string ImageType, string ImageID, bool thumnbnailOnly)
        {
            JMMImageType imageType = (JMMImageType)int.Parse(ImageType);

            switch (imageType)
            {
            case JMMImageType.AniDB_Cover:

                AniDB_Anime anime = RepoFactory.AniDB_Anime.GetByAnimeID(int.Parse(ImageID));
                if (anime == null)
                {
                    return(null);
                }

                if (File.Exists(anime.PosterPath))
                {
                    return(anime.PosterPath);
                }
                else
                {
                    logger.Trace("Could not find AniDB_Cover image: {0}", anime.PosterPath);
                    return("");
                }

            case JMMImageType.AniDB_Character:

                AniDB_Character chr = RepoFactory.AniDB_Character.GetByID(int.Parse(ImageID));
                if (chr == null)
                {
                    return(null);
                }

                if (File.Exists(chr.PosterPath))
                {
                    return(chr.PosterPath);
                }
                else
                {
                    logger.Trace("Could not find AniDB_Character image: {0}", chr.PosterPath);
                    return("");
                }

            case JMMImageType.AniDB_Creator:

                AniDB_Seiyuu creator = RepoFactory.AniDB_Seiyuu.GetByID(int.Parse(ImageID));
                if (creator == null)
                {
                    return("");
                }

                if (File.Exists(creator.PosterPath))
                {
                    return(creator.PosterPath);
                }
                else
                {
                    logger.Trace("Could not find AniDB_Creator image: {0}", creator.PosterPath);
                    return("");
                }

            case JMMImageType.TvDB_Cover:

                TvDB_ImagePoster poster = RepoFactory.TvDB_ImagePoster.GetByID(int.Parse(ImageID));
                if (poster == null)
                {
                    return(null);
                }

                if (File.Exists(poster.FullImagePath))
                {
                    return(poster.FullImagePath);
                }
                else
                {
                    logger.Trace("Could not find TvDB_Cover image: {0}", poster.FullImagePath);
                    return("");
                }

            case JMMImageType.TvDB_Banner:

                TvDB_ImageWideBanner wideBanner = RepoFactory.TvDB_ImageWideBanner.GetByID(int.Parse(ImageID));
                if (wideBanner == null)
                {
                    return(null);
                }

                if (File.Exists(wideBanner.FullImagePath))
                {
                    return(wideBanner.FullImagePath);
                }
                else
                {
                    logger.Trace("Could not find TvDB_Banner image: {0}", wideBanner.FullImagePath);
                    return("");
                }

            case JMMImageType.TvDB_Episode:

                TvDB_Episode ep = RepoFactory.TvDB_Episode.GetByID(int.Parse(ImageID));
                if (ep == null)
                {
                    return(null);
                }

                if (File.Exists(ep.FullImagePath))
                {
                    return(ep.FullImagePath);
                }
                else
                {
                    logger.Trace("Could not find TvDB_Episode image: {0}", ep.FullImagePath);
                    return("");
                }

            case JMMImageType.TvDB_FanArt:

                TvDB_ImageFanart fanart = RepoFactory.TvDB_ImageFanart.GetByID(int.Parse(ImageID));
                if (fanart == null)
                {
                    return(null);
                }

                if (thumnbnailOnly)
                {
                    if (File.Exists(fanart.FullThumbnailPath))
                    {
                        return(fanart.FullThumbnailPath);
                    }
                    else
                    {
                        logger.Trace("Could not find TvDB_FanArt image: {0}", fanart.FullThumbnailPath);
                        return("");
                    }
                }
                else
                {
                    if (File.Exists(fanart.FullImagePath))
                    {
                        return(fanart.FullImagePath);
                    }
                    else
                    {
                        logger.Trace("Could not find TvDB_FanArt image: {0}", fanart.FullImagePath);
                        return("");
                    }
                }

            case JMMImageType.MovieDB_Poster:

                MovieDB_Poster mPoster = RepoFactory.MovieDB_Poster.GetByID(int.Parse(ImageID));
                if (mPoster == null)
                {
                    return(null);
                }

                // now find only the original size
                mPoster = RepoFactory.MovieDB_Poster.GetByOnlineID(mPoster.URL);
                if (mPoster == null)
                {
                    return(null);
                }

                if (File.Exists(mPoster.FullImagePath))
                {
                    return(mPoster.FullImagePath);
                }
                else
                {
                    logger.Trace("Could not find MovieDB_Poster image: {0}", mPoster.FullImagePath);
                    return("");
                }

            case JMMImageType.MovieDB_FanArt:

                MovieDB_Fanart mFanart = RepoFactory.MovieDB_Fanart.GetByID(int.Parse(ImageID));
                if (mFanart == null)
                {
                    return(null);
                }

                mFanart = RepoFactory.MovieDB_Fanart.GetByOnlineID(mFanart.URL);
                if (mFanart == null)
                {
                    return(null);
                }

                if (File.Exists(mFanart.FullImagePath))
                {
                    return(mFanart.FullImagePath);
                }
                else
                {
                    logger.Trace("Could not find MovieDB_FanArt image: {0}", mFanart.FullImagePath);
                    return("");
                }

            case JMMImageType.Trakt_Fanart:

                Trakt_ImageFanart tFanart = RepoFactory.Trakt_ImageFanart.GetByID(int.Parse(ImageID));
                if (tFanart == null)
                {
                    return(null);
                }

                if (File.Exists(tFanart.FullImagePath))
                {
                    return(tFanart.FullImagePath);
                }
                else
                {
                    logger.Trace("Could not find Trakt_Fanart image: {0}", tFanart.FullImagePath);
                    return("");
                }

            case JMMImageType.Trakt_Poster:

                Trakt_ImagePoster tPoster = RepoFactory.Trakt_ImagePoster.GetByID(int.Parse(ImageID));
                if (tPoster == null)
                {
                    return(null);
                }

                if (File.Exists(tPoster.FullImagePath))
                {
                    return(tPoster.FullImagePath);
                }
                else
                {
                    logger.Trace("Could not find Trakt_Poster image: {0}", tPoster.FullImagePath);
                    return("");
                }

            case JMMImageType.Trakt_Episode:
            case JMMImageType.Trakt_WatchedEpisode:

                Trakt_Episode tEpisode = RepoFactory.Trakt_Episode.GetByID(int.Parse(ImageID));
                if (tEpisode == null)
                {
                    return(null);
                }

                if (File.Exists(tEpisode.FullImagePath))
                {
                    return(tEpisode.FullImagePath);
                }
                else
                {
                    logger.Trace("Could not find Trakt_Episode image: {0}", tEpisode.FullImagePath);
                    return("");
                }

            default:
                return("");
            }
        }
Esempio n. 9
0
		public ImageDownloadRequest(JMMImageType imageType, object data, bool forceDownload)
		{
			this.ImageType = imageType;
			this.ImageData = data;
			this.ForceDownload = forceDownload;
		}
Esempio n. 10
0
        /// <summary>
        /// Internal function that return valid image file path on server that exist
        /// </summary>
        /// <param name="id">image id</param>
        /// <param name="type">image type</param>
        /// <param name="thumb">thumb mode</param>
        /// <returns>string</returns>
        internal string ReturnImagePath(int type, int id, bool thumb)
        {
            JMMImageType imageType = (JMMImageType)type;
            string       path      = "";

            switch (imageType)
            {
            // 1
            case JMMImageType.AniDB_Cover:
                SVR_AniDB_Anime anime = RepoFactory.AniDB_Anime.GetByAnimeID(id);
                if (anime == null)
                {
                    return(null);
                }
                path = anime.PosterPath;
                if (Pri.LongPath.File.Exists(path))
                {
                    return(path);
                }
                else
                {
                    path = "";
                    logger.Trace("Could not find AniDB_Cover image: {0}", anime.PosterPath);
                }
                break;

            // 2
            case JMMImageType.AniDB_Character:
                AniDB_Character chr = RepoFactory.AniDB_Character.GetByCharID(id);
                if (chr == null)
                {
                    return(null);
                }
                path = chr.GetPosterPath();
                if (Pri.LongPath.File.Exists(path))
                {
                    return(path);
                }
                else
                {
                    path = "";
                    logger.Trace("Could not find AniDB_Character image: {0}", chr.GetPosterPath());
                }
                break;

            // 3
            case JMMImageType.AniDB_Creator:
                AniDB_Seiyuu creator = RepoFactory.AniDB_Seiyuu.GetBySeiyuuID(id);
                if (creator == null)
                {
                    return(null);
                }
                path = creator.GetPosterPath();
                if (Pri.LongPath.File.Exists(path))
                {
                    return(path);
                }
                else
                {
                    path = "";
                    logger.Trace("Could not find AniDB_Creator image: {0}", creator.GetPosterPath());
                }
                break;

            // 4
            case JMMImageType.TvDB_Banner:
                TvDB_ImageWideBanner wideBanner = RepoFactory.TvDB_ImageWideBanner.GetByID(id);
                if (wideBanner == null)
                {
                    return(null);
                }
                path = wideBanner.GetFullImagePath();
                if (Pri.LongPath.File.Exists(path))
                {
                    return(path);
                }
                else
                {
                    path = "";
                    logger.Trace("Could not find TvDB_Banner image: {0}", wideBanner.GetFullImagePath());
                }
                break;

            // 5
            case JMMImageType.TvDB_Cover:
                TvDB_ImagePoster poster = RepoFactory.TvDB_ImagePoster.GetByID(id);
                if (poster == null)
                {
                    return(null);
                }
                path = poster.GetFullImagePath();
                if (Pri.LongPath.File.Exists(path))
                {
                    return(path);
                }
                else
                {
                    path = "";
                    logger.Trace("Could not find TvDB_Cover image: {0}", poster.GetFullImagePath());
                }
                break;

            // 6
            case JMMImageType.TvDB_Episode:
                TvDB_Episode ep = RepoFactory.TvDB_Episode.GetByID(id);
                if (ep == null)
                {
                    return(null);
                }
                path = ep.GetFullImagePath();
                if (Pri.LongPath.File.Exists(path))
                {
                    return(path);
                }
                else
                {
                    path = "";
                    logger.Trace("Could not find TvDB_Episode image: {0}", ep.GetFullImagePath());
                }
                break;

            // 7
            case JMMImageType.TvDB_FanArt:
                TvDB_ImageFanart fanart = RepoFactory.TvDB_ImageFanart.GetByID(id);
                if (fanart == null)
                {
                    return(null);
                }
                if (thumb)
                {
                    //ratio
                    path = fanart.GetFullThumbnailPath();
                    if (Pri.LongPath.File.Exists(path))
                    {
                        return(path);
                    }
                    else
                    {
                        path = "";
                        logger.Trace("Could not find TvDB_FanArt image: {0}", fanart.GetFullThumbnailPath());
                    }
                }
                else
                {
                    path = fanart.GetFullImagePath();
                    if (Pri.LongPath.File.Exists(path))
                    {
                        return(path);
                    }
                    else
                    {
                        path = "";
                        logger.Trace("Could not find TvDB_FanArt image: {0}", fanart.GetFullImagePath());
                    }
                }
                break;

            // 8
            case JMMImageType.MovieDB_FanArt:
                MovieDB_Fanart mFanart = RepoFactory.MovieDB_Fanart.GetByID(id);
                if (mFanart == null)
                {
                    return(null);
                }
                mFanart = RepoFactory.MovieDB_Fanart.GetByOnlineID(mFanart.URL);
                if (mFanart == null)
                {
                    return(null);
                }
                path = mFanart.GetFullImagePath();
                if (Pri.LongPath.File.Exists(path))
                {
                    return(path);
                }
                else
                {
                    path = "";
                    logger.Trace("Could not find MovieDB_FanArt image: {0}", mFanart.GetFullImagePath());
                }
                break;

            // 9
            case JMMImageType.MovieDB_Poster:
                MovieDB_Poster mPoster = RepoFactory.MovieDB_Poster.GetByID(id);
                if (mPoster == null)
                {
                    return(null);
                }
                mPoster = RepoFactory.MovieDB_Poster.GetByOnlineID(mPoster.URL);
                if (mPoster == null)
                {
                    return(null);
                }
                path = mPoster.GetFullImagePath();
                if (Pri.LongPath.File.Exists(path))
                {
                    return(path);
                }
                else
                {
                    path = "";
                    logger.Trace("Could not find MovieDB_Poster image: {0}", mPoster.GetFullImagePath());
                }
                break;

            // 10
            case JMMImageType.Trakt_Poster:
                Trakt_ImagePoster tPoster = RepoFactory.Trakt_ImagePoster.GetByID(id);
                if (tPoster == null)
                {
                    return(null);
                }
                path = tPoster.GetFullImagePath();
                if (Pri.LongPath.File.Exists(path))
                {
                    return(path);
                }
                else
                {
                    path = "";
                    logger.Trace("Could not find Trakt_Poster image: {0}", tPoster.GetFullImagePath());
                }
                break;

            // 11
            case JMMImageType.Trakt_Fanart:
                Trakt_ImageFanart tFanart = RepoFactory.Trakt_ImageFanart.GetByID(id);
                if (tFanart == null)
                {
                    return(null);
                }
                path = tFanart.GetFullImagePath();
                if (Pri.LongPath.File.Exists(path))
                {
                    return(path);
                }
                else
                {
                    path = "";
                    logger.Trace("Could not find Trakt_Fanart image: {0}", tFanart.GetFullImagePath());
                }
                break;


            // 12 + 16
            case JMMImageType.Trakt_Episode:
            case JMMImageType.Trakt_WatchedEpisode:
                Trakt_Episode tEpisode = RepoFactory.Trakt_Episode.GetByID(id);
                if (tEpisode == null)
                {
                    return(null);
                }
                path = tEpisode.GetFullImagePath();
                if (Pri.LongPath.File.Exists(path))
                {
                    return(path);
                }
                else
                {
                    path = "";
                    logger.Trace("Could not find Trakt_Episode image: {0}", tEpisode.GetFullImagePath());
                }
                break;

            // 0, 13-15, 17+
            default:
                path = "";
                break;
            }

            return(path);
        }
Esempio n. 11
0
        public Contract_AniDB_Anime_DefaultImage ToContract(ISession session)
        {
            Contract_AniDB_Anime_DefaultImage contract = new Contract_AniDB_Anime_DefaultImage();

            contract.AniDB_Anime_DefaultImageID = this.AniDB_Anime_DefaultImageID;
            contract.AnimeID         = this.AnimeID;
            contract.ImageParentID   = this.ImageParentID;
            contract.ImageParentType = this.ImageParentType;
            contract.ImageType       = this.ImageType;

            contract.MovieFanart  = null;
            contract.MoviePoster  = null;
            contract.TVPoster     = null;
            contract.TVFanart     = null;
            contract.TVWideBanner = null;
            contract.TraktFanart  = null;
            contract.TraktPoster  = null;

            JMMImageType imgType = (JMMImageType)ImageParentType;

            switch (imgType)
            {
            case JMMImageType.TvDB_Banner:

                TvDB_ImageWideBannerRepository repBanners = new TvDB_ImageWideBannerRepository();
                TvDB_ImageWideBanner           banner     = repBanners.GetByID(session, ImageParentID);
                if (banner != null)
                {
                    contract.TVWideBanner = banner.ToContract();
                }

                break;

            case JMMImageType.TvDB_Cover:

                TvDB_ImagePosterRepository repPosters = new TvDB_ImagePosterRepository();
                TvDB_ImagePoster           poster     = repPosters.GetByID(session, ImageParentID);
                if (poster != null)
                {
                    contract.TVPoster = poster.ToContract();
                }

                break;

            case JMMImageType.TvDB_FanArt:

                TvDB_ImageFanartRepository repFanart = new TvDB_ImageFanartRepository();
                TvDB_ImageFanart           fanart    = repFanart.GetByID(session, ImageParentID);
                if (fanart != null)
                {
                    contract.TVFanart = fanart.ToContract();
                }

                break;

            case JMMImageType.MovieDB_Poster:

                MovieDB_PosterRepository repMoviePosters = new MovieDB_PosterRepository();
                MovieDB_Poster           moviePoster     = repMoviePosters.GetByID(session, ImageParentID);
                if (moviePoster != null)
                {
                    contract.MoviePoster = moviePoster.ToContract();
                }

                break;

            case JMMImageType.MovieDB_FanArt:

                MovieDB_FanartRepository repMovieFanart = new MovieDB_FanartRepository();
                MovieDB_Fanart           movieFanart    = repMovieFanart.GetByID(session, ImageParentID);
                if (movieFanart != null)
                {
                    contract.MovieFanart = movieFanart.ToContract();
                }

                break;

            case JMMImageType.Trakt_Fanart:

                Trakt_ImageFanartRepository repTraktFanart = new Trakt_ImageFanartRepository();
                Trakt_ImageFanart           traktFanart    = repTraktFanart.GetByID(session, ImageParentID);
                if (traktFanart != null)
                {
                    contract.TraktFanart = traktFanart.ToContract();
                }

                break;

            case JMMImageType.Trakt_Poster:

                Trakt_ImagePosterRepository repTraktPoster = new Trakt_ImagePosterRepository();
                Trakt_ImagePoster           traktPoster    = repTraktPoster.GetByID(session, ImageParentID);
                if (traktPoster != null)
                {
                    contract.TraktPoster = traktPoster.ToContract();
                }

                break;
            }

            return(contract);
        }
Esempio n. 12
0
        private List <object> ParseBanners(int seriesID, XmlDocument xmlDoc)
        {
            List <object> banners = new List <object>();

            try
            {
                XmlNodeList bannerItems = xmlDoc["Banners"].GetElementsByTagName("Banner");

                //BaseConfig.MyAnimeLog.Write("Found {0} banner nodes", bannerItems.Count);

                if (bannerItems.Count <= 0)
                {
                    return(banners);
                }

                // banner types
                // series = wide banner
                // fanart = fanart
                // poster = filmstrip poster/dvd cover



                List <int> validFanartIDs = new List <int>();
                List <int> validPosterIDs = new List <int>();
                List <int> validBannerIDs = new List <int>();

                foreach (XmlNode node in bannerItems)
                {
                    JMMImageType imageType = JMMImageType.TvDB_Cover;

                    string bannerType  = node["BannerType"].InnerText.Trim().ToUpper();
                    string bannerType2 = node["BannerType2"].InnerText.Trim().ToUpper();


                    if (bannerType == "FANART")
                    {
                        imageType = JMMImageType.TvDB_FanArt;
                    }
                    else if (bannerType == "POSTER")
                    {
                        imageType = JMMImageType.TvDB_Cover;
                    }
                    else if (bannerType == "SEASON")
                    {
                        if (bannerType2 == "SEASON")
                        {
                            imageType = JMMImageType.TvDB_Cover;
                        }
                        else
                        {
                            imageType = JMMImageType.TvDB_Banner;
                        }
                    }
                    else if (bannerType == "SERIES")
                    {
                        if (bannerType2 == "SEASONWIDE" || bannerType2 == "GRAPHICAL" || bannerType2 == "TEXT" ||
                            bannerType2 == "BLANK")
                        {
                            imageType = JMMImageType.TvDB_Banner;
                        }
                        else
                        {
                            imageType = JMMImageType.TvDB_Cover;
                        }
                    }

                    if (imageType == JMMImageType.TvDB_FanArt)
                    {
                        int id = int.Parse(node["id"].InnerText);
                        TvDB_ImageFanart img = RepoFactory.TvDB_ImageFanart.GetByTvDBID(id);
                        if (img == null)
                        {
                            img         = new TvDB_ImageFanart();
                            img.Enabled = 1;
                        }

                        img.Populate(seriesID, node);
                        RepoFactory.TvDB_ImageFanart.Save(img);

                        banners.Add(img);
                        validFanartIDs.Add(id);
                    }

                    if (imageType == JMMImageType.TvDB_Banner)
                    {
                        int id = int.Parse(node["id"].InnerText);

                        TvDB_ImageWideBanner img = RepoFactory.TvDB_ImageWideBanner.GetByTvDBID(id);
                        if (img == null)
                        {
                            img         = new TvDB_ImageWideBanner();
                            img.Enabled = 1;
                        }

                        img.Populate(seriesID, node, TvDBImageNodeType.Series);
                        RepoFactory.TvDB_ImageWideBanner.Save(img);

                        banners.Add(img);
                        validBannerIDs.Add(id);
                    }

                    if (imageType == JMMImageType.TvDB_Cover)
                    {
                        int id = int.Parse(node["id"].InnerText);

                        TvDB_ImagePoster img = RepoFactory.TvDB_ImagePoster.GetByTvDBID(id);
                        if (img == null)
                        {
                            img         = new TvDB_ImagePoster();
                            img.Enabled = 1;
                        }

                        TvDBImageNodeType nodeType = TvDBImageNodeType.Series;
                        if (bannerType == "SEASON")
                        {
                            nodeType = TvDBImageNodeType.Season;
                        }


                        img.Populate(seriesID, node, nodeType);
                        RepoFactory.TvDB_ImagePoster.Save(img);

                        banners.Add(img);
                        validPosterIDs.Add(id);
                    }
                }

                // delete any banners from the database which are no longer valid
                foreach (TvDB_ImageFanart img in RepoFactory.TvDB_ImageFanart.GetBySeriesID(seriesID))
                {
                    if (!validFanartIDs.Contains(img.Id))
                    {
                        RepoFactory.TvDB_ImageFanart.Delete(img.TvDB_ImageFanartID);
                    }
                }

                foreach (TvDB_ImagePoster img in RepoFactory.TvDB_ImagePoster.GetBySeriesID(seriesID))
                {
                    if (!validPosterIDs.Contains(img.Id))
                    {
                        RepoFactory.TvDB_ImagePoster.Delete(img.TvDB_ImagePosterID);
                    }
                }

                foreach (TvDB_ImageWideBanner img in RepoFactory.TvDB_ImageWideBanner.GetBySeriesID(seriesID))
                {
                    if (!validBannerIDs.Contains(img.Id))
                    {
                        RepoFactory.TvDB_ImageWideBanner.Delete(img.TvDB_ImageWideBannerID);
                    }
                }
            }
            catch (Exception ex)
            {
                logger.Error(ex, "Error in ParseBanners: " + ex.ToString());
            }

            return(banners);
        }
Esempio n. 13
0
        public byte[] GetImage(string entityID, int entityType, bool thumnbnailOnly)
        {
            AniDB_AnimeRepository          repAnime       = new AniDB_AnimeRepository();
            TvDB_ImagePosterRepository     repPosters     = new TvDB_ImagePosterRepository();
            TvDB_EpisodeRepository         repEpisodes    = new TvDB_EpisodeRepository();
            TvDB_ImageFanartRepository     repFanart      = new TvDB_ImageFanartRepository();
            TvDB_ImageWideBannerRepository repWideBanners = new TvDB_ImageWideBannerRepository();

            MovieDB_PosterRepository repMoviePosters = new MovieDB_PosterRepository();
            MovieDB_FanartRepository repMovieFanart  = new MovieDB_FanartRepository();

            Trakt_ImageFanartRepository repTraktFanart   = new Trakt_ImageFanartRepository();
            Trakt_ImagePosterRepository repTraktPosters  = new Trakt_ImagePosterRepository();
            Trakt_EpisodeRepository     repTraktEpisodes = new Trakt_EpisodeRepository();
            Trakt_FriendRepository      repTraktFriends  = new Trakt_FriendRepository();

            JMMImageType imageType = (JMMImageType)entityType;

            switch (imageType)
            {
            case JMMImageType.AniDB_Cover:

                AniDB_Anime anime = repAnime.GetByAnimeID(int.Parse(entityID));
                if (anime == null)
                {
                    return(null);
                }

                if (File.Exists(anime.PosterPath))
                {
                    return(File.ReadAllBytes(anime.PosterPath));
                }
                else
                {
                    logger.Trace("Could not find AniDB_Cover image: {0}", anime.PosterPath);
                    return(null);
                }

            case JMMImageType.AniDB_Character:

                AniDB_CharacterRepository repChar = new AniDB_CharacterRepository();
                AniDB_Character           chr     = repChar.GetByID(int.Parse(entityID));
                if (chr == null)
                {
                    return(null);
                }

                if (File.Exists(chr.PosterPath))
                {
                    return(File.ReadAllBytes(chr.PosterPath));
                }
                else
                {
                    logger.Trace("Could not find AniDB_Character image: {0}", chr.PosterPath);
                    return(null);
                }

            case JMMImageType.AniDB_Creator:

                AniDB_SeiyuuRepository repCreator = new AniDB_SeiyuuRepository();
                AniDB_Seiyuu           creator    = repCreator.GetByID(int.Parse(entityID));
                if (creator == null)
                {
                    return(null);
                }

                if (File.Exists(creator.PosterPath))
                {
                    return(File.ReadAllBytes(creator.PosterPath));
                }
                else
                {
                    logger.Trace("Could not find AniDB_Creator image: {0}", creator.PosterPath);
                    return(null);
                }

            case JMMImageType.TvDB_Cover:

                TvDB_ImagePoster poster = repPosters.GetByID(int.Parse(entityID));
                if (poster == null)
                {
                    return(null);
                }

                if (File.Exists(poster.FullImagePath))
                {
                    return(File.ReadAllBytes(poster.FullImagePath));
                }
                else
                {
                    logger.Trace("Could not find TvDB_Cover image: {0}", poster.FullImagePath);
                    return(null);
                }

            case JMMImageType.TvDB_Banner:

                TvDB_ImageWideBanner wideBanner = repWideBanners.GetByID(int.Parse(entityID));
                if (wideBanner == null)
                {
                    return(null);
                }

                if (File.Exists(wideBanner.FullImagePath))
                {
                    return(File.ReadAllBytes(wideBanner.FullImagePath));
                }
                else
                {
                    logger.Trace("Could not find TvDB_Banner image: {0}", wideBanner.FullImagePath);
                    return(null);
                }

            case JMMImageType.TvDB_Episode:

                TvDB_Episode ep = repEpisodes.GetByID(int.Parse(entityID));
                if (ep == null)
                {
                    return(null);
                }

                if (File.Exists(ep.FullImagePath))
                {
                    return(File.ReadAllBytes(ep.FullImagePath));
                }
                else
                {
                    logger.Trace("Could not find TvDB_Episode image: {0}", ep.FullImagePath);
                    return(null);
                }

            case JMMImageType.TvDB_FanArt:

                TvDB_ImageFanart fanart = repFanart.GetByID(int.Parse(entityID));
                if (fanart == null)
                {
                    return(null);
                }

                if (thumnbnailOnly)
                {
                    if (File.Exists(fanart.FullThumbnailPath))
                    {
                        return(File.ReadAllBytes(fanart.FullThumbnailPath));
                    }
                    else
                    {
                        logger.Trace("Could not find TvDB_FanArt image: {0}", fanart.FullThumbnailPath);
                        return(null);
                    }
                }
                else
                {
                    if (File.Exists(fanart.FullImagePath))
                    {
                        return(File.ReadAllBytes(fanart.FullImagePath));
                    }
                    else
                    {
                        logger.Trace("Could not find TvDB_FanArt image: {0}", fanart.FullImagePath);
                        return(null);
                    }
                }

            case JMMImageType.MovieDB_Poster:

                MovieDB_Poster mPoster = repMoviePosters.GetByID(int.Parse(entityID));
                if (mPoster == null)
                {
                    return(null);
                }

                // now find only the original size
                mPoster = repMoviePosters.GetByOnlineID(mPoster.URL);
                if (mPoster == null)
                {
                    return(null);
                }

                if (File.Exists(mPoster.FullImagePath))
                {
                    return(File.ReadAllBytes(mPoster.FullImagePath));
                }
                else
                {
                    logger.Trace("Could not find MovieDB_Poster image: {0}", mPoster.FullImagePath);
                    return(null);
                }

            case JMMImageType.MovieDB_FanArt:

                MovieDB_Fanart mFanart = repMovieFanart.GetByID(int.Parse(entityID));
                if (mFanart == null)
                {
                    return(null);
                }

                mFanart = repMovieFanart.GetByOnlineID(mFanart.URL);
                if (mFanart == null)
                {
                    return(null);
                }

                if (File.Exists(mFanart.FullImagePath))
                {
                    return(File.ReadAllBytes(mFanart.FullImagePath));
                }
                else
                {
                    logger.Trace("Could not find MovieDB_FanArt image: {0}", mFanart.FullImagePath);
                    return(null);
                }

            case JMMImageType.Trakt_Fanart:

                Trakt_ImageFanart tFanart = repTraktFanart.GetByID(int.Parse(entityID));
                if (tFanart == null)
                {
                    return(null);
                }

                if (File.Exists(tFanart.FullImagePath))
                {
                    return(File.ReadAllBytes(tFanart.FullImagePath));
                }
                else
                {
                    logger.Trace("Could not find Trakt_Fanart image: {0}", tFanart.FullImagePath);
                    return(null);
                }

            case JMMImageType.Trakt_Friend:


                Trakt_Friend tFriend = repTraktFriends.GetByID(int.Parse(entityID));
                if (tFriend == null)
                {
                    return(null);
                }

                if (File.Exists(tFriend.FullImagePath))
                {
                    return(File.ReadAllBytes(tFriend.FullImagePath));
                }
                else
                {
                    logger.Trace("Could not find Trakt_Friend image: {0}", tFriend.FullImagePath);
                    return(null);
                }

            case JMMImageType.Trakt_ActivityScrobble:
            case JMMImageType.Trakt_ShoutUser:


                Trakt_Friend tFriendScrobble = repTraktFriends.GetByID(int.Parse(entityID));
                if (tFriendScrobble == null)
                {
                    return(null);
                }

                if (File.Exists(tFriendScrobble.FullImagePath))
                {
                    return(File.ReadAllBytes(tFriendScrobble.FullImagePath));
                }
                else
                {
                    logger.Trace("Could not find Trakt_ActivityScrobble image: {0}", tFriendScrobble.FullImagePath);
                    return(null);
                }

            case JMMImageType.Trakt_Poster:

                Trakt_ImagePoster tPoster = repTraktPosters.GetByID(int.Parse(entityID));
                if (tPoster == null)
                {
                    return(null);
                }

                if (File.Exists(tPoster.FullImagePath))
                {
                    return(File.ReadAllBytes(tPoster.FullImagePath));
                }
                else
                {
                    logger.Trace("Could not find Trakt_Poster image: {0}", tPoster.FullImagePath);
                    return(null);
                }

            case JMMImageType.Trakt_Episode:
            case JMMImageType.Trakt_WatchedEpisode:

                Trakt_Episode tEpisode = repTraktEpisodes.GetByID(int.Parse(entityID));
                if (tEpisode == null)
                {
                    return(null);
                }

                if (File.Exists(tEpisode.FullImagePath))
                {
                    return(File.ReadAllBytes(tEpisode.FullImagePath));
                }
                else
                {
                    logger.Trace("Could not find Trakt_Episode image: {0}", tEpisode.FullImagePath);
                    return(null);
                }

            default:

                return(null);
            }
        }
        public System.IO.Stream GetImage(string ImageType, string ImageID, bool thumnbnailOnly, out string contentType)
        {
            contentType = null;

            JMMImageType imageType = (JMMImageType)int.Parse(ImageType);

            string path;

            switch (imageType)
            {
            case JMMImageType.AniDB_Cover:

                AniDB_Anime anime = RepoFactory.AniDB_Anime.GetByAnimeID(int.Parse(ImageID));
                if (anime == null)
                {
                    return(null);
                }

                path = anime.PosterPath;
                if (File.Exists(path))
                {
                    FileStream fs = File.OpenRead(path);
                    contentType = MimeTypes.GetMimeType(path);
                    return(fs);
                }
                else
                {
                    logger.Trace("Could not find AniDB_Cover image: {0}", anime.PosterPath);
                    return(BlankImage());
                }

            case JMMImageType.AniDB_Character:

                AniDB_Character chr = RepoFactory.AniDB_Character.GetByID(int.Parse(ImageID));
                if (chr == null)
                {
                    return(null);
                }

                path = chr.PosterPath;
                if (File.Exists(path))
                {
                    FileStream fs = File.OpenRead(path);
                    contentType = MimeTypes.GetMimeType(path);
                    return(fs);
                }
                else
                {
                    logger.Trace("Could not find AniDB_Character image: {0}", chr.PosterPath);
                    return(BlankImage());
                }

            case JMMImageType.AniDB_Creator:

                AniDB_Seiyuu creator = RepoFactory.AniDB_Seiyuu.GetByID(int.Parse(ImageID));
                if (creator == null)
                {
                    return(null);
                }

                path = creator.PosterPath;
                if (File.Exists(path))
                {
                    FileStream fs = File.OpenRead(path);
                    contentType = MimeTypes.GetMimeType(path);
                    return(fs);
                }
                else
                {
                    logger.Trace("Could not find AniDB_Creator image: {0}", creator.PosterPath);
                    return(BlankImage());
                }

            case JMMImageType.TvDB_Cover:

                TvDB_ImagePoster poster = RepoFactory.TvDB_ImagePoster.GetByID(int.Parse(ImageID));
                if (poster == null)
                {
                    return(null);
                }

                path = poster.FullImagePath;
                if (File.Exists(path))
                {
                    FileStream fs = File.OpenRead(path);
                    contentType = MimeTypes.GetMimeType(path);
                    return(fs);
                }
                else
                {
                    logger.Trace("Could not find TvDB_Cover image: {0}", poster.FullImagePath);
                    return(BlankImage());
                }

            case JMMImageType.TvDB_Banner:

                TvDB_ImageWideBanner wideBanner = RepoFactory.TvDB_ImageWideBanner.GetByID(int.Parse(ImageID));
                if (wideBanner == null)
                {
                    return(null);
                }

                path = wideBanner.FullImagePath;
                if (File.Exists(path))
                {
                    FileStream fs = File.OpenRead(path);
                    contentType = MimeTypes.GetMimeType(path);
                    return(fs);
                }
                else
                {
                    logger.Trace("Could not find TvDB_Banner image: {0}", wideBanner.FullImagePath);
                    return(BlankImage());
                }

            case JMMImageType.TvDB_Episode:

                TvDB_Episode ep = RepoFactory.TvDB_Episode.GetByID(int.Parse(ImageID));
                if (ep == null)
                {
                    return(null);
                }

                path = ep.FullImagePath;
                if (File.Exists(path))
                {
                    FileStream fs = File.OpenRead(path);
                    contentType = MimeTypes.GetMimeType(path);
                    return(fs);
                }
                else
                {
                    logger.Trace("Could not find TvDB_Episode image: {0}", ep.FullImagePath);
                    return(BlankImage());
                }

            case JMMImageType.TvDB_FanArt:

                TvDB_ImageFanart fanart = RepoFactory.TvDB_ImageFanart.GetByID(int.Parse(ImageID));
                if (fanart == null)
                {
                    return(null);
                }

                if (thumnbnailOnly)
                {
                    path = fanart.FullThumbnailPath;
                    if (File.Exists(path))
                    {
                        FileStream fs = File.OpenRead(path);
                        contentType = MimeTypes.GetMimeType(path);
                        return(fs);
                    }
                    else
                    {
                        logger.Trace("Could not find TvDB_FanArt image: {0}", fanart.FullThumbnailPath);
                        return(null);
                    }
                }
                else
                {
                    path = fanart.FullImagePath;
                    if (File.Exists(path))
                    {
                        FileStream fs = File.OpenRead(path);
                        contentType = MimeTypes.GetMimeType(path);
                        return(fs);
                    }
                    else
                    {
                        logger.Trace("Could not find TvDB_FanArt image: {0}", fanart.FullImagePath);
                        return(BlankImage());
                    }
                }

            case JMMImageType.MovieDB_Poster:

                MovieDB_Poster mPoster = RepoFactory.MovieDB_Poster.GetByID(int.Parse(ImageID));
                if (mPoster == null)
                {
                    return(null);
                }

                // now find only the original size
                mPoster = RepoFactory.MovieDB_Poster.GetByOnlineID(mPoster.URL);
                if (mPoster == null)
                {
                    return(null);
                }

                path = mPoster.FullImagePath;
                if (File.Exists(path))
                {
                    FileStream fs = File.OpenRead(path);
                    contentType = MimeTypes.GetMimeType(path);
                    return(fs);
                }
                else
                {
                    logger.Trace("Could not find MovieDB_Poster image: {0}", mPoster.FullImagePath);
                    return(BlankImage());
                }

            case JMMImageType.MovieDB_FanArt:

                MovieDB_Fanart mFanart = RepoFactory.MovieDB_Fanart.GetByID(int.Parse(ImageID));
                if (mFanart == null)
                {
                    return(null);
                }

                mFanart = RepoFactory.MovieDB_Fanart.GetByOnlineID(mFanart.URL);
                if (mFanart == null)
                {
                    return(null);
                }

                path = mFanart.FullImagePath;
                if (File.Exists(path))
                {
                    FileStream fs = File.OpenRead(path);
                    contentType = MimeTypes.GetMimeType(path);
                    return(fs);
                }
                else
                {
                    logger.Trace("Could not find MovieDB_FanArt image: {0}", mFanart.FullImagePath);
                    return(BlankImage());
                }

            case JMMImageType.Trakt_Fanart:

                Trakt_ImageFanart tFanart = RepoFactory.Trakt_ImageFanart.GetByID(int.Parse(ImageID));
                if (tFanart == null)
                {
                    return(null);
                }

                path = tFanart.FullImagePath;
                if (File.Exists(path))
                {
                    FileStream fs = File.OpenRead(path);
                    contentType = MimeTypes.GetMimeType(path);
                    return(fs);
                }
                else
                {
                    logger.Trace("Could not find Trakt_Fanart image: {0}", tFanart.FullImagePath);
                    return(BlankImage());
                }

            case JMMImageType.Trakt_Poster:

                Trakt_ImagePoster tPoster = RepoFactory.Trakt_ImagePoster.GetByID(int.Parse(ImageID));
                if (tPoster == null)
                {
                    return(null);
                }

                path = tPoster.FullImagePath;
                if (File.Exists(path))
                {
                    FileStream fs = File.OpenRead(path);
                    contentType = MimeTypes.GetMimeType(path);
                    return(fs);
                }
                else
                {
                    logger.Trace("Could not find Trakt_Poster image: {0}", tPoster.FullImagePath);
                    return(BlankImage());
                }

            case JMMImageType.Trakt_Episode:
            case JMMImageType.Trakt_WatchedEpisode:

                Trakt_Episode tEpisode = RepoFactory.Trakt_Episode.GetByID(int.Parse(ImageID));
                if (tEpisode == null)
                {
                    return(null);
                }

                path = tEpisode.FullImagePath;
                if (File.Exists(path))
                {
                    FileStream fs = File.OpenRead(path);
                    contentType = MimeTypes.GetMimeType(path);
                    return(fs);
                }
                else
                {
                    logger.Trace("Could not find Trakt_Episode image: {0}", tEpisode.FullImagePath);
                    return(BlankImage());
                }

            default:

                return(BlankImage());
            }
        }