public static async Task <SharepointListItem[]> GetAllItemsFromSharepointListAsync(this MicrosoftGraphHelper mgh, Guid site_id, Guid list_id) { HttpRequestMessage req = mgh.PrepareHttpRequestMessage(); req.Method = HttpMethod.Get; req.RequestUri = new Uri("https://graph.microsoft.com/v1.0/sites/" + site_id.ToString() + "/lists/" + list_id.ToString() + "/items?expand=fields"); HttpClient hc = new HttpClient(); HttpResponseMessage msg = await hc.SendAsync(req); string content = await msg.Content.ReadAsStringAsync(); if (msg.StatusCode != HttpStatusCode.OK) { throw new Exception("Getting all items from sharepoint list '" + list_id.ToString() + "' failed with code \"" + msg.StatusCode.ToString() + "\". Body: " + content); } JObject jo = JObject.Parse(content); //Get them JArray ja_value = JArray.Parse(jo.Property("value").Value.ToString()); List <SharepointListItem> SPitems = new List <SharepointListItem>(); foreach (JObject jo_li in ja_value) { SharepointListItem spli = SharepointListItem.ParseFromJsonPayload(jo_li.ToString()); SPitems.Add(spli); } return(SPitems.ToArray()); }
public static SharepointListItem ParseFromJsonPayload(string payload) { SharepointListItem ToReturn = new SharepointListItem(); JObject jo = JObject.Parse(payload); //Created At JProperty prop_createdDateTime = jo.Property("createdDateTime"); if (prop_createdDateTime != null) { if (prop_createdDateTime.Value.Type != JTokenType.Null) { ToReturn.CreatedAt = DateTime.Parse(prop_createdDateTime.Value.ToString()); } } //Id JProperty prop_id = jo.Property("id"); if (prop_id != null) { if (prop_id.Value.Type != JTokenType.Null) { ToReturn.Id = prop_id.Value.ToString(); } } //Last Modified JProperty prop_lastModifiedDateTime = jo.Property("lastModifiedDateTime"); if (prop_lastModifiedDateTime != null) { if (prop_lastModifiedDateTime.Value.Type != JTokenType.Null) { ToReturn.LastModified = DateTime.Parse(prop_lastModifiedDateTime.Value.ToString()); } } //Web url JProperty prop_url = jo.Property("webUrl"); if (prop_url != null) { if (prop_url.Value.Type != JTokenType.Null) { ToReturn.Url = prop_url.Value.ToString(); } } //Created by user JObject jo_createdBy = JObject.Parse(jo.Property("createdBy").Value.ToString()); if (jo_createdBy != null) { JObject jo_user = JObject.Parse(jo_createdBy.Property("user").Value.ToString()); if (jo_user != null) { AzureAdUser user = AzureAdUser.ParseFromJsonPayload(jo_user.ToString()); ToReturn.CreatedBy = user; } } //Last modified by user JObject jo_lastModifiedBy = JObject.Parse(jo.Property("lastModifiedBy").Value.ToString()); if (jo_createdBy != null) { JObject jo_user = JObject.Parse(jo_lastModifiedBy.Property("user").Value.ToString()); if (jo_user != null) { AzureAdUser user = AzureAdUser.ParseFromJsonPayload(jo_user.ToString()); ToReturn.LastModifiedBy = user; } } //Fields JProperty prop_fields = jo.Property("fields"); if (prop_fields != null) { if (prop_fields.Value.Type != JTokenType.Null) { JObject fields = JObject.Parse(prop_fields.Value.ToString()); ToReturn.Fields = fields; } } return(ToReturn); }