public Series GetSeriesByIdFromApi(int id) { IRestResponse seriesResponse = itemApiRepo.GetSeriesById(id); //Convert the response to a movie object SeriesApiResult apiSeries = JsonConvert.DeserializeObject <SeriesApiResult>(seriesResponse.Content); //Retrieve the credits (Person objects) from the API IRestResponse creditsResponse = itemApiRepo.GetCreditsBySeriesId(id); //Convert the response to a MovieCreditsRoot object CreditsRoot creditsRoot = JsonConvert.DeserializeObject <CreditsRoot>(creditsResponse.Content); Series series = new Series() { Id = apiSeries.Id, Title = apiSeries.Name, Description = apiSeries.Description, ReleaseDate = apiSeries.AirDate, PosterPath = apiSeries.PosterURL, BackdropURL = apiSeries.BackdropPath }; series.ItemGenres = new List <ItemGenre>(); foreach (Genre genre in apiSeries.Genres) { series.ItemGenres.Add(new ItemGenre { ItemId = series.Id, GenreId = genre.Id, Item = series, Genre = genre }); } series.ItemCrewMembers = new List <ItemCrewMember>(); foreach (CrewMemberResult crewMember in creditsRoot.Crew) { series.ItemCrewMembers.Add( new ItemCrewMember { ItemId = series.Id, CrewMemberId = crewMember.Id, Item = series, CrewMember = new CrewMember { Id = crewMember.Id, Name = crewMember.Name }, Job = crewMember.Job } ); } series.ItemCastMembers = new List <ItemCastMember>(); foreach (CastMemberResult castMember in creditsRoot.Cast) { series.ItemCastMembers.Add( new ItemCastMember { ItemId = series.Id, CastMemberId = castMember.Id, Item = series, CastMember = new CastMember { Id = castMember.Id, Name = castMember.Name }, Character = castMember.Character } ); } series.Seasons = new List <Season>(); for (int seasonNr = 1; seasonNr <= apiSeries.NumberOfSeasons; seasonNr++) { IRestResponse seasonResponse = itemApiRepo.GetSeriesSeasonById(id, seasonNr); //Convert the response to a movie object Season season = JsonConvert.DeserializeObject <Season>(seasonResponse.Content); series.Seasons.Add(season); } return(series); }
/// <summary> /// Returns the movie with the given id from the API /// </summary> /// <param name="id">Id of the movie</param> /// <returns>A Movie object</returns> private Movie GetMovieByIdFromAPI(int id) { //Retrieve the movie from the API IRestResponse movieResponse = itemApiRepo.GetMovieById(id); //Convert the response to a movie object MovieApiResult apiMovie = JsonConvert.DeserializeObject <MovieApiResult>(movieResponse.Content); //Retrieve the credits (Person objects) from the API IRestResponse creditsResponse = itemApiRepo.GetCreditsByMovieId(id); //Convert the response to a MovieCreditsRoot object CreditsRoot movieCreditsRoot = JsonConvert.DeserializeObject <CreditsRoot>(creditsResponse.Content); Movie movie = new Movie { Id = apiMovie.Id, Title = apiMovie.Title, Description = apiMovie.Description, ReleaseDate = apiMovie.ReleaseDate, PosterPath = apiMovie.PosterURL, BackdropURL = apiMovie.BackdropURL }; movie.ItemGenres = new List <ItemGenre>(); foreach (Genre genre in apiMovie.Genres) { movie.ItemGenres.Add(new ItemGenre { ItemId = movie.Id, GenreId = genre.Id, Item = movie, Genre = genre }); } //Add all people to the movie movie.ItemCrewMembers = new List <ItemCrewMember>(); foreach (CrewMemberResult crewMember in movieCreditsRoot.Crew) { movie.ItemCrewMembers.Add( new ItemCrewMember { ItemId = movie.Id, CrewMemberId = crewMember.Id, Item = movie, CrewMember = new CrewMember { Id = crewMember.Id, Name = crewMember.Name }, Job = crewMember.Job } ); } movie.ItemCastMembers = new List <ItemCastMember>(); foreach (CastMemberResult castMember in movieCreditsRoot.Cast) { movie.ItemCastMembers.Add( new ItemCastMember { ItemId = movie.Id, CastMemberId = castMember.Id, Item = movie, CastMember = new CastMember { Id = castMember.Id, Name = castMember.Name }, Character = castMember.Character } ); } return(movie); }