public static void GetFlickrImageSizes(ImageFeedItem imageFeedItem, string flickrApiKey, GetFlickrImageSizesCallback callback) { if (imageFeedItem == null || (imageFeedItem.Sizes != null && imageFeedItem.Sizes.Count > 0) || imageFeedItem.SourceType != SourceType.Flickr) { callback(imageFeedItem); } string query = string.Format(CultureInfo.InvariantCulture, "http://api.flickr.com/services/rest/?method=flickr.photos.getSizes&api_key={0}&photo_id={1}", flickrApiKey, imageFeedItem.ServiceId); AsyncWebRequest request = new AsyncWebRequest(); request.Request(new Uri(query)); request.Result += (sender, e) => { if (e.Status != HttpStatusCode.OK) { callback(imageFeedItem); } try { XDocument doc = XDocument.Parse(e.Response); imageFeedItem.Sizes = new Dictionary<Size, Uri>(); foreach (XElement size in doc.Descendants("size")) { imageFeedItem.Sizes[new Size(int.Parse(size.Attribute("width").Value, CultureInfo.InvariantCulture), int.Parse(size.Attribute("height").Value, CultureInfo.InvariantCulture))] = new Uri(size.Attribute("source").Value); } callback(imageFeedItem); } catch { callback(imageFeedItem); } }; }
public static void GetFlickrImageSizes(ImageFeedItem imageFeedItem, string flickrApiKey, GetFlickrImageSizesCallback callback) { if (imageFeedItem == null || (imageFeedItem.Sizes != null && imageFeedItem.Sizes.Count > 0) || imageFeedItem.SourceType != SourceType.Flickr) { callback(imageFeedItem); } string query = string.Format(CultureInfo.InvariantCulture, "http://api.flickr.com/services/rest/?method=flickr.photos.getSizes&api_key={0}&photo_id={1}", flickrApiKey, imageFeedItem.ServiceId); AsyncWebRequest request = new AsyncWebRequest(); request.Request(new Uri(query)); request.Result += (sender, e) => { if (e.Status != HttpStatusCode.OK) { callback(imageFeedItem); } try { XDocument doc = XDocument.Parse(e.Response); imageFeedItem.Sizes = new Dictionary <Size, Uri>(); foreach (XElement size in doc.Descendants("size")) { imageFeedItem.Sizes[new Size(int.Parse(size.Attribute("width").Value, CultureInfo.InvariantCulture), int.Parse(size.Attribute("height").Value, CultureInfo.InvariantCulture))] = new Uri(size.Attribute("source").Value); } callback(imageFeedItem); } catch { callback(imageFeedItem); } }; }