Exemple #1
0
        public async Task <Person> AddPerson(long theMoviePersonId)
        {
            string birthDayConditionCheck = string.Empty;

            using (IServiceScope scope = _serviceScopeFactory.CreateScope())
            {
                try
                {
                    var newPerson = new Person();

                    var personCosmosHandler = scope.ServiceProvider.GetService <ICosmosService <Person> >();
                    var movieAPIHandler     = scope.ServiceProvider.GetService <IMovieAPI>();

                    var personDetail = await _movieAPI.GetPerson(theMoviePersonId);

                    if (personDetail.Birthday == null)
                    {
                        birthDayConditionCheck = personDetail.Birthday == null ? " " : $" and c.birthday = '{personDetail.Birthday.Value.ToShortDateString()}'";
                    }
                    else
                    {
                        birthDayConditionCheck = personDetail.Birthday == null ? " " : $" and c.birthday = '{personDetail.Birthday.Value.ToShortDateString()}'";
                    }

                    newPerson = (await personCosmosHandler
                                 .GetQueryAsync($"SELECT * FROM c WHERE c.name='{personDetail.Name}' {birthDayConditionCheck}"))
                                .FirstOrDefault();


                    if (newPerson == null)
                    {
                        newPerson = new Person();
                        // change to Automapper one lien source to destination trasform
                        newPerson.Id           = Guid.NewGuid().ToString();
                        newPerson.Name         = personDetail.Name;
                        newPerson.Biography    = personDetail.Biography;
                        newPerson.Birthday     = personDetail.Birthday;
                        newPerson.Deathday     = personDetail.Deathday;
                        newPerson.Homepage     = personDetail.Homepage;
                        newPerson.Gender       = personDetail.Gender;
                        newPerson.PlaceOfBirth = personDetail.PlaceOfBirth;
                        newPerson.ProfilePath  = _movieAPI.GetImageURL(personDetail.ProfilePath);

                        await personCosmosHandler.AddAsync(newPerson);
                    }

                    return(newPerson);
                }catch (Exception exp)
                {
                    Console.WriteLine("Exceptionat AddPerson" +
                                      "------------------------------------" +
                                      "------------------------------------" +
                                      exp);
                    return(default(Person));
                }
            }
        }
Exemple #2
0
        public async Task <MovieViewModel> GetDomainMovieByTheMovieDbAPI(MovieQuery movieQuery)
        {
            var tempMovieResult = await _movieAPI.GetMovieDetailsById(movieQuery.id);

            var tempMovieCredits = await _movieAPI.GetMovieCredits(movieQuery.id);

            var preparedMovie = new Movie()
            {
                TheMovieDBId     = movieQuery.id,
                Budget           = tempMovieResult.Budget,
                Homepage         = tempMovieResult.Homepage,
                ImdbId           = tempMovieResult.ImdbId,
                OriginalLanguage = tempMovieResult.OriginalLanguage,
                OriginalTitle    = tempMovieResult.OriginalTitle,
                Overview         = tempMovieResult.Overview,
                Popularity       = tempMovieResult.Popularity,
                PosterPath       = _movieAPI.GetImageURL(tempMovieResult.PosterPath),
                ReleaseDate      = tempMovieResult.ReleaseDate,
                Revenue          = tempMovieResult.Revenue,
                Runtime          = tempMovieResult.Runtime,
                Status           = tempMovieResult.Status,
                Tagline          = tempMovieResult.Tagline,
                Title            = tempMovieResult.Title,
                Genres           = tempMovieResult.Genres.Select(x => new Genre()
                {
                    Name = x.Name
                }).ToList(),
                ProductionCountries = tempMovieResult.ProductionCountries.Select(x => new ProductionCountry()
                {
                    Code = x.Iso3166_1, Name = x.Name
                }).ToList(),
                SpokenLanguages = tempMovieResult.SpokenLanguages.Select(x => new SpokenLanguage()
                {
                    Code = x.Iso639_1, Name = x.Name
                }).ToList(),
                ProductionCompanies = tempMovieResult.ProductionCompanies.Select(x => new ProductionCompany()
                {
                    LogoPath      = x.LogoPath,
                    Name          = x.Name,
                    OriginCountry = x.OriginCountry
                }).ToList()
            };

            var preparedMovieCasts = tempMovieCredits.Casts.Select(mov => new Cast
            {
                TheMovideDBPersonId = mov.Id,
                Gender      = mov.Gender,
                Name        = mov.Name,
                Character   = mov.Character,
                ProfilePath = _movieAPI.GetImageURL(mov.ProfilePath)
            }).ToList();

            var preparedMovieCrews = tempMovieCredits.Crews.Select(mov => new Crew
            {
                TheMovideDBPersonId = mov.Id,
                Gender      = mov.Gender,
                Name        = mov.Name,
                Department  = mov.Department,
                Job         = mov.Job,
                ProfilePath = _movieAPI.GetImageURL(mov.ProfilePath)
            }).ToList();


            return(new MovieViewModel()
            {
                MovieDetails = preparedMovie, CastDetails = preparedMovieCasts, CrewDetails = preparedMovieCrews
            });
        }