/// <summary> /// Fetches the images. /// </summary> /// <param name="person">The person.</param> /// <param name="id">The id.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <returns>Task.</returns> private async Task FetchImages(Person person, string id, CancellationToken cancellationToken) { string url = string.Format(@"http://api.themoviedb.org/3/person/{1}/images?api_key={0}", MovieDbProvider.ApiKey, id); PersonImages searchResult = null; try { using (Stream json = await HttpClient.Get(url, MovieDbProvider.Current.MovieDbResourcePool, cancellationToken).ConfigureAwait(false)) { if (json != null) { searchResult = JsonSerializer.DeserializeFromStream <PersonImages>(json); } } } catch (HttpException) { } if (searchResult != null && searchResult.Profiles.Count > 0) { //get our language var profile = searchResult.Profiles.FirstOrDefault( p => !string.IsNullOrEmpty(p.Iso_639_1) && p.Iso_639_1.Equals(ConfigurationManager.Configuration.PreferredMetadataLanguage, StringComparison.OrdinalIgnoreCase)); if (profile == null) { //didn't find our language - try first null one profile = searchResult.Profiles.FirstOrDefault( p => !string.IsNullOrEmpty(p.Iso_639_1) && p.Iso_639_1.Equals(ConfigurationManager.Configuration.PreferredMetadataLanguage, StringComparison.OrdinalIgnoreCase)); } if (profile == null) { //still nothing - just get first one profile = searchResult.Profiles[0]; } if (profile != null) { var tmdbSettings = await MovieDbProvider.Current.TmdbSettings.ConfigureAwait(false); var img = await DownloadAndSaveImage(person, tmdbSettings.images.base_url + ConfigurationManager.Configuration.TmdbFetchedProfileSize + profile.File_Path, "folder" + Path.GetExtension(profile.File_Path), cancellationToken).ConfigureAwait(false); if (!string.IsNullOrEmpty(img)) { person.PrimaryImagePath = img; } } } }
public IActionResult GetPersonImages(int movieId) { MovieCredits movieCredits = _creditService.GetCreditsByMovieId(movieId); List <PersonImages> personImagesLsit = new List <PersonImages>(); foreach (var cast in movieCredits.cast) { PersonImages personImages = _personImagesService.GetPersonImagesByPersonId(cast.id); personImagesLsit.Add(personImages); } return(Ok(personImagesLsit)); }
private IEnumerable <RemoteImageInfo> GetImages(PersonImages images, string preferredLanguage, string baseImageUrl) { var list = new List <RemoteImageInfo>(); if (images.Profiles != null) { list.AddRange(images.Profiles.Select(i => new RemoteImageInfo { ProviderName = Name, Type = ImageType.Primary, Width = i.Width, Height = i.Height, Language = GetLanguage(i), Url = baseImageUrl + i.File_Path })); } var language = preferredLanguage; var isLanguageEn = string.Equals(language, "en", StringComparison.OrdinalIgnoreCase); return(list.OrderByDescending(i => { if (string.Equals(language, i.Language, StringComparison.OrdinalIgnoreCase)) { return 3; } if (!isLanguageEn) { if (string.Equals("en", i.Language, StringComparison.OrdinalIgnoreCase)) { return 2; } } if (string.IsNullOrEmpty(i.Language)) { return isLanguageEn ? 3 : 2; } return 0; }) .ThenByDescending(i => i.CommunityRating ?? 0) .ThenByDescending(i => i.VoteCount ?? 0)); }
public bool Create(PersonImages personImages) { _peopleImages.InsertOne(personImages); return(true); }