コード例 #1
0
        private static People CreatePeople(SearchResultItemDTO searchResultItem)
        {
            var people = new People(
                profilePath: searchResultItem.ProfilePath,
                isAdult: searchResultItem.IsAdult,
                id: searchResultItem.Id,
                name: searchResultItem.Name,
                popularity: searchResultItem.Popularity);

            if (searchResultItem.KnownFor != null)
            {
                foreach (var knownForItem in searchResultItem.KnownFor)
                {
                    if (knownForItem.MediaType == MediaType.Movie)
                    {
                        people.AddKnownForMovie((Movie)MediaFactory.Create <Movie>(knownForItem));
                    }
                    else if (knownForItem.MediaType == MediaType.Tv)
                    {
                        people.AddKnownForTvShow((TvShow)MediaFactory.Create <TvShow>(knownForItem));
                    }
                }
            }

            return(people);
        }
コード例 #2
0
        internal static Media Create <T>(SearchResultItemDTO searchResultItem) where T : Media
        {
            if (typeof(T) == typeof(Movie))
            {
                return(CreateMovie(searchResultItem));
            }
            else if (typeof(T) == typeof(TvShow))
            {
                return(CreateTvShow(searchResultItem));
            }

            throw new Exception("Unrecognized media type");
        }
コード例 #3
0
 private static TvShow CreateTvShow(SearchResultItemDTO searchResultItem)
 {
     return(new TvShow(
                posterPath: searchResultItem.PosterPath,
                overview: searchResultItem.Overview,
                genresId: searchResultItem.GenresId,
                id: searchResultItem.Id,
                originalLanguage: searchResultItem.OriginalLanguage,
                backdropPath: searchResultItem.BackdropPath,
                popularity: searchResultItem.Popularity,
                voteCount: searchResultItem.VoteCount,
                voteAverage: searchResultItem.VoteAverage,
                firstAirDate: searchResultItem.FirstAirDate,
                originalCountry: searchResultItem.OriginalCountry,
                name: searchResultItem.Name,
                originalName: searchResultItem.OriginalName
                ));
 }
コード例 #4
0
 private static Movie CreateMovie(SearchResultItemDTO searchResultItem)
 {
     return(new Movie(
                posterPath: searchResultItem.PosterPath,
                isAdult: searchResultItem.IsAdult,
                overview: searchResultItem.Overview,
                releaseDate: searchResultItem.ReleaseDate,
                genresId: searchResultItem.GenresId,
                id: searchResultItem.Id,
                originalTitle: searchResultItem.OriginalTitle,
                originalLanguage: searchResultItem.OriginalLanguage,
                title: searchResultItem.Title,
                backdropPath: searchResultItem.BackdropPath,
                popularity: searchResultItem.Popularity,
                voteCount: searchResultItem.VoteCount,
                video: searchResultItem.Video,
                voteAverage: searchResultItem.VoteAverage
                ));
 }
コード例 #5
0
        internal static T Create <T>(SearchResultItemDTO searchResultItem)
        {
            object result = null;

            if (typeof(T) == typeof(Collection))
            {
                result = CreateCollection(searchResultItem);;
            }
            else if (typeof(T) == typeof(Company))
            {
                result = CreateCompany(searchResultItem);;
            }
            else if (typeof(T) == typeof(KeyWord))
            {
                result = CreateKeyWord(searchResultItem);;
            }
            else if (typeof(T) == typeof(Movie))
            {
                result = MediaFactory.Create <Movie>(searchResultItem);
            }
            else if (typeof(T) == typeof(People))
            {
                result = CreatePeople(searchResultItem);;
            }
            else if (typeof(T) == typeof(TvShow))
            {
                result = MediaFactory.Create <TvShow>(searchResultItem);
            }

            if (result is null)
            {
                throw new Exception("Unrecognized type");
            }

            return((T)Convert.ChangeType(result, typeof(T)));
        }
コード例 #6
0
 private static KeyWord CreateKeyWord(SearchResultItemDTO searchResultItem)
 {
     return(new KeyWord(searchResultItem.Id, searchResultItem.Name));
 }
コード例 #7
0
 private static Company CreateCompany(SearchResultItemDTO searchResultItem)
 {
     return(new Company(searchResultItem.Id, searchResultItem.LogoPath, searchResultItem.Name));
 }
コード例 #8
0
 private static Collection CreateCollection(SearchResultItemDTO searchResultItem)
 {
     return(new Collection(searchResultItem.Id, searchResultItem.BackdropPath,
                           searchResultItem.Name, searchResultItem.PosterPath));
 }