public static async Task <SiteResponse> GetSite(string id)
        {
            string jsonSites = await ExecuteGetRequest("https://graph.microsoft.com/v1.0/sites/" + id);

            SiteResponse siteResponse = JsonConvert.DeserializeObject <SiteResponse>(jsonSites);

            string jsonLists = await ExecuteGetRequest("https://graph.microsoft.com/v1.0/sites/" + id + "/lists/");

            siteResponse.lists = (JsonConvert.DeserializeObject <ListsResponse>(jsonLists)).value;

            return(siteResponse);
        }
        public static async Task <List <SiteResponse> > GetGroups()
        {
            GraphServiceClient client = GetMSGraphClient();
            var groups = await client.Groups.Request().GetAsync();

            List <SiteResponse> sites = new List <SiteResponse>();

            foreach (var group in groups)
            {
                if (group.GroupTypes.Count() > 0)
                {
                    string templ   = "https://graph.microsoft.com/v1.0/groups/{0}/sites/root";
                    string restUrl = string.Format(templ, group.Id);
                    string json    = await ExecuteGetRequest(restUrl);

                    SiteResponse siteResponse = JsonConvert.DeserializeObject <SiteResponse>(json);
                    sites.Add(siteResponse);
                }
            }

            return(sites);
        }