Пример #1
0
        public static CL_AniDB_Anime_DefaultImage ToClient(this AniDB_Anime_DefaultImage defaultImage,
                                                           ISessionWrapper session)
        {
            ImageEntityType imgType     = (ImageEntityType)defaultImage.ImageParentType;
            IImageEntity    parentImage = null;

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

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

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

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

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

            return(defaultImage.ToClient(parentImage));
        }
Пример #2
0
        protected override byte[] ExecuteResult()
        {
            IImageEntity image = null;

            switch (Type)
            {
            case SearchItemOfType.Product:
                image = this.Repository.GetById <Product>(Id);
                break;

            case SearchItemOfType.Store:
                image = this.Repository.GetById <Store>(Id);
                break;

            case SearchItemOfType.User:
                image = this.Repository.GetById <User>(Id);
                break;

            ////ncrunch: no coverage start
            default:
                return(null);
                ////ncrunch: no coverage end
            }

            return(image.Image);
        }
Пример #3
0
        public Dictionary <int, DefaultAnimeImages> GetDefaultImagesByAnime(IEnumerable <int> animeIds)
        {
            if (animeIds == null)
            {
                throw new ArgumentNullException(nameof(animeIds));
            }

            var defImagesByAnime = new Dictionary <int, DefaultAnimeImages>();

            Dictionary <int, List <AniDB_Anime_DefaultImage> >             defs          = Repo.Instance.AniDB_Anime_DefaultImage.GetByAnimeIDs(animeIds);
            Dictionary <ImageEntityType, List <AniDB_Anime_DefaultImage> > allimages     = defs.Values.SelectMany(a => a).GroupBy(a => (ImageEntityType)a.ImageParentType).ToDictionary(a => a.Key, a => a.ToList());
            Dictionary <ImageEntityType, Dictionary <int, IImageEntity> >  allreferences = new Dictionary <ImageEntityType, Dictionary <int, IImageEntity> >();

            allreferences.Add(ImageEntityType.TvDB_Banner, Repo.Instance.TvDB_ImageWideBanner.GetMany(allimages[ImageEntityType.TvDB_Banner].Select(a => a.ImageParentID)).ToDictionary(a => a.TvDB_ImageWideBannerID, a => (IImageEntity)a));
            allreferences.Add(ImageEntityType.TvDB_Cover, Repo.Instance.TvDB_ImagePoster.GetMany(allimages[ImageEntityType.TvDB_Cover].Select(a => a.ImageParentID)).ToDictionary(a => a.TvDB_ImagePosterID, a => (IImageEntity)a));
            allreferences.Add(ImageEntityType.TvDB_FanArt, Repo.Instance.TvDB_ImageFanart.GetMany(allimages[ImageEntityType.TvDB_FanArt].Select(a => a.ImageParentID)).ToDictionary(a => a.TvDB_ImageFanartID, a => (IImageEntity)a));
            allreferences.Add(ImageEntityType.MovieDB_Poster, Repo.Instance.MovieDB_Poster.GetMany(allimages[ImageEntityType.MovieDB_Poster].Select(a => a.ImageParentID)).ToDictionary(a => a.MovieDB_PosterID, a => (IImageEntity)a));
            allreferences.Add(ImageEntityType.MovieDB_FanArt, Repo.Instance.MovieDB_Fanart.GetMany(allimages[ImageEntityType.MovieDB_FanArt].Select(a => a.ImageParentID)).ToDictionary(a => a.MovieDB_FanartID, a => (IImageEntity)a));

            foreach (int aid in defs.Keys)
            {
                foreach (AniDB_Anime_DefaultImage imag in defs[aid])
                {
                    IImageEntity parentImage = allreferences[(ImageEntityType)imag.ImageParentType].FirstOrDefault(a => a.Key == imag.ImageParentID).Value;
                    if (parentImage != null)
                    {
                        DefaultAnimeImage defImage = new DefaultAnimeImage(imag, parentImage);

                        if (!defImagesByAnime.TryGetValue(imag.AnimeID, out DefaultAnimeImages defImages))
                        {
                            defImages = new DefaultAnimeImages {
                                AnimeID = imag.AnimeID
                            };
                            defImagesByAnime.Add(defImages.AnimeID, defImages);
                        }

                        switch (defImage.AniDBImageSizeType)
                        {
                        case ImageSizeType.Poster:
                            defImages.Poster = defImage;
                            break;

                        case ImageSizeType.WideBanner:
                            defImages.WideBanner = defImage;
                            break;

                        case ImageSizeType.Fanart:
                            defImages.Fanart = defImage;
                            break;
                        }
                    }
                }
            }
            return(defImagesByAnime);
        }
Пример #4
0
        public DefaultAnimeImage(AniDB_Anime_DefaultImage aniDbImage, IImageEntity parentImage)
        {
            if (aniDbImage == null)
            {
                throw new ArgumentNullException(nameof(aniDbImage));
            }
            if (parentImage == null)
            {
                throw new ArgumentNullException(nameof(parentImage));
            }

            AniDBImage   = aniDbImage;
            _parentImage = parentImage;
        }
Пример #5
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);
        }
        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;
        }
        public Contract_AniDB_Anime_DefaultImage ToContract(ISessionWrapper session)
        {
            JMMImageType imgType     = (JMMImageType)ImageParentType;
            IImageEntity parentImage = null;

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

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

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

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

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

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

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

            return(ToContract(parentImage));
        }
Пример #9
0
        public Dictionary <int, DefaultAnimeImages> GetDefaultImagesByAnime(ISessionWrapper session, int[] animeIds)
        {
            if (session == null)
            {
                throw new ArgumentNullException("session");
            }
            if (animeIds == null)
            {
                throw new ArgumentNullException("animeIds");
            }

            var defImagesByAnime = new Dictionary <int, DefaultAnimeImages>();

            if (animeIds.Length == 0)
            {
                return(defImagesByAnime);
            }

            lock (globalDBLock)
            {
                // TODO: Determine if joining on the correct columns
                var results = session.CreateSQLQuery(@"
                SELECT {defImg.*}, {tvWide.*}, {tvPoster.*}, {tvFanart.*}, {movPoster.*}, {movFanart.*}
                    FROM AniDB_Anime_DefaultImage defImg
                        LEFT OUTER JOIN TvDB_ImageWideBanner AS tvWide
                            ON tvWide.TvDB_ImageWideBannerID = defImg.ImageParentID AND defImg.ImageParentType = :tvdbBannerType
                        LEFT OUTER JOIN TvDB_ImagePoster AS tvPoster
                            ON tvPoster.TvDB_ImagePosterID = defImg.ImageParentID AND defImg.ImageParentType = :tvdbCoverType
                        LEFT OUTER JOIN TvDB_ImageFanart AS tvFanart
                            ON tvFanart.TvDB_ImageFanartID = defImg.ImageParentID AND defImg.ImageParentType = :tvdbFanartType
                        LEFT OUTER JOIN MovieDB_Poster AS movPoster
                            ON movPoster.MovieDB_PosterID = defImg.ImageParentID AND defImg.ImageParentType = :movdbPosterType
                        LEFT OUTER JOIN MovieDB_Fanart AS movFanart
                            ON movFanart.MovieDB_FanartID = defImg.ImageParentID AND defImg.ImageParentType = :movdbFanartType
                    WHERE defImg.AnimeID IN (:animeIds) AND defImg.ImageParentType IN (:tvdbBannerType, :tvdbCoverType, :tvdbFanartType, :movdbPosterType, :movdbFanartType)")
                              .AddEntity("defImg", typeof(AniDB_Anime_DefaultImage))
                              .AddEntity("tvWide", typeof(TvDB_ImageWideBanner))
                              .AddEntity("tvPoster", typeof(TvDB_ImagePoster))
                              .AddEntity("tvFanart", typeof(TvDB_ImageFanart))
                              .AddEntity("movPoster", typeof(MovieDB_Poster))
                              .AddEntity("movFanart", typeof(MovieDB_Fanart))
                              .SetParameterList("animeIds", animeIds)
                              .SetInt32("tvdbBannerType", (int)ImageEntityType.TvDB_Banner)
                              .SetInt32("tvdbCoverType", (int)ImageEntityType.TvDB_Cover)
                              .SetInt32("tvdbFanartType", (int)ImageEntityType.TvDB_FanArt)
                              .SetInt32("movdbPosterType", (int)ImageEntityType.MovieDB_Poster)
                              .SetInt32("movdbFanartType", (int)ImageEntityType.MovieDB_FanArt)
                              .List <object[]>();

                foreach (object[] result in results)
                {
                    var          aniDbDefImage = (AniDB_Anime_DefaultImage)result[0];
                    IImageEntity parentImage   = null;

                    switch ((ImageEntityType)aniDbDefImage.ImageParentType)
                    {
                    case ImageEntityType.TvDB_Banner:
                        parentImage = (IImageEntity)result[1];
                        break;

                    case ImageEntityType.TvDB_Cover:
                        parentImage = (IImageEntity)result[2];
                        break;

                    case ImageEntityType.TvDB_FanArt:
                        parentImage = (IImageEntity)result[3];
                        break;

                    case ImageEntityType.MovieDB_Poster:
                        parentImage = (IImageEntity)result[4];
                        break;

                    case ImageEntityType.MovieDB_FanArt:
                        parentImage = (IImageEntity)result[5];
                        break;
                    }

                    if (parentImage == null)
                    {
                        continue;
                    }

                    DefaultAnimeImage defImage = new DefaultAnimeImage(aniDbDefImage, parentImage);

                    if (!defImagesByAnime.TryGetValue(aniDbDefImage.AnimeID, out DefaultAnimeImages defImages))
                    {
                        defImages = new DefaultAnimeImages {
                            AnimeID = aniDbDefImage.AnimeID
                        };
                        defImagesByAnime.Add(defImages.AnimeID, defImages);
                    }

                    switch (defImage.AniDBImageSizeType)
                    {
                    case ImageSizeType.Poster:
                        defImages.Poster = defImage;
                        break;

                    case ImageSizeType.WideBanner:
                        defImages.WideBanner = defImage;
                        break;

                    case ImageSizeType.Fanart:
                        defImages.Fanart = defImage;
                        break;
                    }
                }
            }

            return(defImagesByAnime);
        }