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());
        }
Esempio n. 2
0
        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);
        }