コード例 #1
0
        public static PhotoListProviderModel.Photo ToProviderModel(this PhotosetsGetPhotosResponse.PhotoSet.Photo response)
        {
            var photo = new PhotoListProviderModel.Photo()
            {
                DateTaken = TryGetDateTime(response.DateTaken),
                Id        = response.Id,
                Name      = response.Title,
                Secret    = response.Secret,
            };

            var scales = new List <PhotoListProviderModel.Photo.PhotoScale>();

            if (!string.IsNullOrEmpty(response.MediumUrl))
            {
                scales.Add(response.GetPhotoScale(PhotoListProviderModel.Photo.PhotoScale.ScaleType.Medium));
            }
            if (!string.IsNullOrEmpty(response.OriginalUrl))
            {
                scales.Add(response.GetPhotoScale(PhotoListProviderModel.Photo.PhotoScale.ScaleType.Original));
            }
            if (!string.IsNullOrEmpty(response.SmallUrl))
            {
                scales.Add(response.GetPhotoScale(PhotoListProviderModel.Photo.PhotoScale.ScaleType.Small));
            }
            if (!string.IsNullOrEmpty(response.ThumbnailUrl))
            {
                scales.Add(response.GetPhotoScale(PhotoListProviderModel.Photo.PhotoScale.ScaleType.Thumbnail));
            }
            photo.Scales = scales.ToArray();

            return(photo);
        }
コード例 #2
0
        private static PhotoListProviderModel.Photo.PhotoScale GetPhotoScale(
            this PhotosetsGetPhotosResponse.PhotoSet.Photo response,
            PhotoListProviderModel.Photo.PhotoScale.ScaleType scaleType)
        {
            var prefix = scaleType.ToString();

            return(new PhotoListProviderModel.Photo.PhotoScale()
            {
                Height = TryGetInt(GetScaleValue(response, prefix + "Height")) ?? 0,
                Scale = scaleType,
                Url = GetScaleValue(response, prefix + "Url"),
                Width = TryGetInt(GetScaleValue(response, prefix + "Width")) ?? 0,
            });
        }
コード例 #3
0
 private static string GetScaleValue(this PhotosetsGetPhotosResponse.PhotoSet.Photo response, string propertyName)
 {
     return(response.GetType().GetProperty(propertyName).GetValue(response, null)?.ToString());
 }