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)); } } }
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 }); }