示例#1
0
        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);
        }
示例#2
0
        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);
            }
        }