private void OnPhotoSearchReturned(object sender, PhotoSearchEventArgs e) { JObject json = JObject.Parse(e.Response); JObject photosetJson = (JObject)json["photos"]; int page = int.Parse(photosetJson["page"].ToString()); int perPage = int.Parse(photosetJson["perpage"].ToString()); int numTotal = int.Parse(photosetJson["total"].ToString()); List<Photo> photos = new List<Photo>(); foreach (var photoJson in photosetJson["photo"]) { Photo photo = PhotoFactory.PhotoWithJObject((JObject)photoJson); photos.Add(photo); } PhotoSearchResultEventArgs evt = new PhotoSearchResultEventArgs(); evt.SearchSessionId = e.SearchSessionId; evt.Page = page; evt.PerPage = perPage; evt.TotalCount = numTotal; evt.Photos = photos; PhotoSearchCompleted.DispatchEvent(this, evt); }
private void OnPhotoSearchResult(object sender, PhotoSearchResultEventArgs e) { Dispatcher.BeginInvoke(() => { if (e.SearchSessionId != SearchSessionId) return; if (_photos.Count == 0 && e.Photos.Count == 0) { NoResultLabel.Visibility = Visibility.Visible; ResultListView.Visibility = Visibility.Collapsed; LoadingView.Visibility = Visibility.Collapsed; return; } // Add new photos foreach (Photo photo in e.Photos) { if (!_photos.Contains(photo)) _photos.Add(photo); } NoResultLabel.Visibility = Visibility.Collapsed; ResultListView.Visibility = Visibility.Visible; LoadingView.Visibility = Visibility.Collapsed; TotalCount = e.TotalCount; }); }