예제 #1
0
        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;
        }
예제 #2
0
 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);
 }
예제 #3
0
        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);
        }