private void OnGroupSearchReturned(object sender, GroupSearchEventArgs e) { JObject json = JObject.Parse(e.Response); JObject groupJson = (JObject)json["groups"]; int page = int.Parse(groupJson["page"].ToString()); int perPage = int.Parse(groupJson["perpage"].ToString()); int numTotal = int.Parse(groupJson["total"].ToString()); List<FlickrGroup> groups = new List<FlickrGroup>(); foreach (var js in groupJson["group"]) { FlickrGroup group = FlickrGroupFactory.GroupWithJObject((JObject)js); groups.Add(group); } GroupSearchResultEventArgs evt = new GroupSearchResultEventArgs(); evt.SearchSessionId = e.SearchSessionId; evt.Page = page; evt.PerPage = perPage; evt.TotalCount = numTotal; evt.Groups = groups; GroupSearchCompleted.DispatchEvent(this, evt); }
private void OnGroupSearchResult(object sender, GroupSearchResultEventArgs e) { Dispatcher.BeginInvoke(() => { if (e.SearchSessionId != SearchSessionId) return; if (_groups.Count == 0 && e.Groups.Count == 0) { NoResultLabel.Visibility = Visibility.Visible; ResultListView.Visibility = Visibility.Collapsed; LoadingView.Visibility = Visibility.Collapsed; return; } // Add new photos foreach (FlickrGroup group in e.Groups) { if (!_groups.Contains(group)) _groups.Add(group); } NoResultLabel.Visibility = Visibility.Collapsed; ResultListView.Visibility = Visibility.Visible; LoadingView.Visibility = Visibility.Collapsed; int page = _groups.Count / perPage + 1; TotalCount = e.TotalCount; }); }