public async Task UpdateFilmFromTmdb(Persistence.Film film) { var movieDetail = await tmdbService.FetchMovieDetails(film.TmdbId); var movieCredits = await tmdbService.FetchMovieCredits(film.TmdbId); var director = movieCredits.FetchDirectorJobs().FirstOrDefault(); film.Name = movieDetail.Title; film.ImageUrl = CreateFullImagePath(movieDetail.PosterPath); film.ImdbId = movieDetail.ImdbId; film.Budget = movieDetail.Budget != 0 ? (long?)movieDetail.Budget : null; film.Revenue = movieDetail.Revenue != 0 ? (long?)movieDetail.Revenue : null; film.Director = director?.Name; film.ReleaseDate = movieDetail.ReleaseDate; film.VoteAverage = movieDetail.VoteAverage; }
private Domain.Film Map(Persistence.Film film) { Domain.Film filmModel = null; if (film != null) { filmModel = new Domain.Film( film.Id, film.Name, film.TmdbId, film.ImageUrl, film.ImdbId, film.ReleaseDate?.Year, film.Budget, film.Revenue, film.VoteAverage, film.Director); } return(filmModel); }
public async Task <Domain.Film> RetrieveFilmByTmdbId(int tmdbId) { var film = await filmListerContext.Films.FirstOrDefaultAsync(f => f.TmdbId == tmdbId); if (film == null) { film = new Persistence.Film { TmdbId = tmdbId, }; // try tmdb await UpdateFilmFromTmdb(film); await filmListerContext.Films.AddAsync(film); await filmListerContext.SaveChangesAsync(); } var domainFilm = Map(film); return(domainFilm); }