private static PlayerImageSearchResult GetPlayerImagesFromDTO(GetPlayerImagesDTO dto) { if (dto != null && dto.results != null && dto.results.Any()) { foreach (var dtoResult in dto.results) { if (!string.IsNullOrEmpty(dtoResult.iurl) && ( dtoResult.iurl.ToLower().Contains("espncdn.com") && dtoResult.iurl.ToLower().Contains("headshots/mlb") || (!string.IsNullOrWhiteSpace(dtoResult.domain) && (dtoResult.domain.ToLower().Contains("baseball") || dtoResult.domain.ToLower().Contains("baseballhall.org") || dtoResult.domain.ToLower().Contains("cloudfront.net")))) ) { return(new PlayerImageSearchResult { ImageURL = dtoResult.iurl, ImageSourceDomain = dtoResult.domain }); } } } return(null); }
public PlayerImageSearchResult GetPlayerImage(string playerName) { var cachedPlayerImage = PlayerImageCache.FirstOrDefault(x => x.PlayerName == playerName); if (cachedPlayerImage != null) { return(new PlayerImageSearchResult { ImageURL = HttpUtility.UrlDecode(@cachedPlayerImage.ImageURL) }); } string jsonData = this.GetPlayerImagesJson(playerName); try { GetPlayerImagesDTO dto = GetPlayerImagesDTO.FromJson(jsonData); var result = GetPlayerImagesFromDTO(dto); PlayerImageCache.Add(new PlayerImageSearchResult { PlayerName = playerName, ImageURL = HttpUtility.UrlEncode(@result.ImageURL) }); this.HasChanges = true; return(result); } catch { return(null); } }