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); }
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"); }
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 )); }
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 )); }
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))); }
private static KeyWord CreateKeyWord(SearchResultItemDTO searchResultItem) { return(new KeyWord(searchResultItem.Id, searchResultItem.Name)); }
private static Company CreateCompany(SearchResultItemDTO searchResultItem) { return(new Company(searchResultItem.Id, searchResultItem.LogoPath, searchResultItem.Name)); }
private static Collection CreateCollection(SearchResultItemDTO searchResultItem) { return(new Collection(searchResultItem.Id, searchResultItem.BackdropPath, searchResultItem.Name, searchResultItem.PosterPath)); }