예제 #1
0
    /// <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
                }
            }

        }