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); }
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, }); }
private static string GetScaleValue(this PhotosetsGetPhotosResponse.PhotoSet.Photo response, string propertyName) { return(response.GetType().GetProperty(propertyName).GetValue(response, null)?.ToString()); }