/// <summary>
 /// Initializes the NextPageRequest property.
 /// </summary>
 public void InitializeNextPageRequest(IBaseClient client, string nextPageLinkString)
 {
     if (!string.IsNullOrEmpty(nextPageLinkString))
     {
         this.NextPageRequest = new GraphServiceSitesCollectionRequest(
             nextPageLinkString,
             client,
             null);
     }
 }
Exemplo n.º 2
0
        public async Task <NeoQueryData> CollectDataAsync()
        {
            this.SiteIDs = new List <string>();
            NeoQueryData  querydata    = new NeoQueryData();
            List <object> propertylist = new List <object>();

            IGraphServiceSitesCollectionRequest request = Connector.Instance.Client.Sites.Request();

            request.Top(999);

            IGraphServiceSitesCollectionPage page = null;

            await Connector.Instance.MakeGraphClientRequestAsync(async() =>
            {
                page = await request.GetAsync();
            });

            while (page != null)
            {
                foreach (Site site in page.CurrentPage)
                {
                    this.SiteIDs.Add(site.Id); //record the site ID so it can be used later
                    string sitename = string.IsNullOrEmpty(site.DisplayName) ? site.Name : site.DisplayName;
                    sitename = string.IsNullOrEmpty(sitename) ? site.WebUrl : sitename;

                    propertylist.Add(new
                    {
                        ID          = site.Id,
                        WebUrl      = site.WebUrl,
                        DisplayName = site.DisplayName,
                        Name        = sitename,
                        SiteName    = site.Name,
                        Description = site.Description
                    });
                }

                if (page.NextPageRequest == null)
                {
                    break;
                }

                await Connector.Instance.MakeGraphClientRequestAsync(async() =>
                {
                    page = await page.NextPageRequest.GetAsync();
                });
            }

            querydata.Properties = propertylist;
            return(querydata);
        }