/// <summary> /// Called when a search for users completes. /// </summary> void SearchCompleted(OpenReadEventArgs e, EventHandler<UserSearchEventArgs> callback) { if (e.Error != null) { if (callback != null) callback(this, new UserSearchEventArgs() { Error = e.Error }); return; } UserSearchResult result = WebUtil.ReadObject<UserSearchResult>(e.Result); if (callback != null && result != null) callback(null, new UserSearchEventArgs() { Result = result }); else if(callback != null) callback(null, new UserSearchEventArgs() { Error = new Exception(ESRI.ArcGIS.Mapping.Controls.ArcGISOnline.Resources.Strings.UserSearchFailed) }); }
/// <summary> /// Called when a search for content completes. /// Initializes the thumbnails and invokes the callback. /// </summary> void SearchCompleted(OpenReadEventArgs e, string sort, EventHandler<ContentSearchEventArgs> callback) { if (e.Error != null) { if (callback != null) callback(this, new ContentSearchEventArgs() { Error = e.Error }); return; } ContentSearchResult result = WebUtil.ReadObject<ContentSearchResult>(e.Result); result.Sort = sort; // setup the thumbnails for each result // if (result != null && result.Items != null) { foreach (ContentItem item in result.Items) if (item.ThumbnailPath != null) { string thumbnailUrl = _agol.Url + "content/items/" + item.Id + "/info/" + item.ThumbnailPath + "?tickCount=" + Environment.TickCount.ToString(); if (_agol.User.Current != null) thumbnailUrl += "&token=" + _agol.User.Token; item.Thumbnail = new BitmapImage(new Uri(thumbnailUrl)); } } if (callback != null) callback(null, new ContentSearchEventArgs() { Result = result }); }
/// <summary> /// Called when a search for groups completes. /// Initializes the thumbnails of the groups and invokes the callback. /// </summary> void SearchCompleted(OpenReadEventArgs e, EventHandler<GroupSearchEventArgs> callback) { if (e.Error != null) { if (callback != null) callback(null, new GroupSearchEventArgs() { Error = e.Error }); return; } GroupSearchResult result = WebUtil.ReadObject<GroupSearchResult>(e.Result); if (result.Items != null) { // setup the thumbnails for each result // foreach (Group group in result.Items) if (group.ThumbnailPath != null) { string thumbnailUrl = _agol.Url + "community/groups/" + group.Id + "/info/" + group.ThumbnailPath; if (_agol.User.Current != null) thumbnailUrl += "?token=" + _agol.User.Token; group.Thumbnail = new BitmapImage(new Uri(thumbnailUrl)); } } if (callback != null) callback(null, new GroupSearchEventArgs() { Result = result }); }
/// <summary> /// Raised when the asynchronous call to search the web has completed. /// </summary> private void WebSearchCompleted(object sender, OpenReadEventArgs e) { // Received another response, so increment the counter _numberWebResults++; if (e.Error == null && !_cancelled) // No error, no cancellation - handle result as normal { GoogleResponse result = WebUtil.ReadObject<GoogleResponse>(e.Result); if (result != null && result.ResponseData != null && result.ResponseData.Items.Length > 0) { // before services from the web get added we need to check if they are accessible foreach (WebSearchResultItem item in result.ResponseData.Items) { Uri url = new Uri(item.Url); ArcGISService.GetServiceInfoAsync(item.Url, item, CheckServiceAccessCompleted); } return; } } // There was an error, the response was empty, or the operation was cancelled. Check whether this is the last response. if (_numberWebResults == _NUMREQUESTS) { // All requests have returned. Go through completeion routine. if (!_cancelled) { IsSearching = false; // Reset busy state OnSearchCompleted(); // Raise completed event } } }