/// <summary>
        /// Retrieves list items from SharePoint
        /// </summary>
        /// <param name="obj">The object instance of the corresponding list to be retrieved</param>
        /// <returns></returns>
        private async static Task RetrieveListItemsFromSharePoint(object obj)
        {
            // Clear list
            if (obj.GetType() == typeof(OfficeBook))
            {
                _officeBooks.Clear();

                list = lists.Where(b => b.DisplayName.Contains("Books")).FirstOrDefault();
            }
            else if (obj.GetType() == typeof(OfficeItem))
            {
                _officeItems.Clear();

                list = lists.Where(b => b.DisplayName.Contains("Items")).FirstOrDefault();
            }
            else if (obj.GetType() == typeof(Member))
            {
                _members.Clear();

                list = lists.Where(b => b.DisplayName.Contains("Members")).FirstOrDefault();
            }

            //assign the global listId for use in other methods
            _listId = list.Id;

            //Getting listItems using msgraph
            IListItemsCollectionPage listItems = await GetListItems(_listId);

            foreach (var item in listItems)
            {
                IDictionary <string, object> resourceList = item.Fields.AdditionalData;
                var jsonString = JsonConvert.SerializeObject(resourceList);

                if (obj.GetType() == typeof(OfficeBook))
                {
                    var officeResource = JsonConvert.DeserializeObject <OfficeBook>(jsonString);
                    officeResource.SharePointItemId = item.Id;
                    _officeBooks.Add(officeResource);
                }
                else if (obj.GetType() == typeof(OfficeItem))
                {
                    var officeResource = JsonConvert.DeserializeObject <OfficeItem>(jsonString);
                    officeResource.SharePointItemId = item.Id;
                    _officeItems.Add(officeResource);
                }
                else if (obj.GetType() == typeof(Member))
                {
                    var memberResource = JsonConvert.DeserializeObject <Member>(jsonString);
                    memberResource.SharePointItemId = item.Id;
                    _members.Add(memberResource);
                }
            }
        }
        private async static Task LoadBooks()
        {
            // Clear list
            officeBooks.Clear();

            var list = lists.Where(b => b.DisplayName.Contains("Books")).FirstOrDefault();

            //assign the global listId for use in other methods
            _listId = list.Id;

            //Getting listItems using msgraph
            IListItemsCollectionPage listItems = await GetListItems(list.Id);

            foreach (var item in listItems)
            {
                IDictionary <string, object> booksList = item.Fields.AdditionalData;

                var jsonString = JsonConvert.SerializeObject(booksList);
                var officeBook = JsonConvert.DeserializeObject <OfficeBook>(jsonString);
                officeBook.SharePointItemId = item.Id;

                officeBooks.Add(officeBook);
            }
        }
Ejemplo n.º 3
0
        private async static void GetAuthors()
        {
            ISiteListsCollectionPage lists = await GetList();

            /* We will show existing site list
             * and filter the Authors List for use
             * in this sample
             */
            var list = lists.Where(l => l.DisplayName.Contains("Authors")).FirstOrDefault();

            //Show existing Site List in the Current Site
            Console.WriteLine($"Display all {list.DisplayName}");
            Console.WriteLine("***************************");

            //assign the global listId for use in other methods
            _listId = list.Id;

            //Getting listItems using msgraph
            IListItemsCollectionPage listItems = await GetListItems(list.Id);

            foreach (var item in listItems)
            {
                IDictionary <string, object> columns = item.Fields.AdditionalData;

                if (columns != null)
                {
                    string[] filterColumns = new string[] { "Title", "LastName" };
                    foreach (var col in columns)
                    {
                        if (filterColumns.Contains(col.Key))
                        {
                            Console.WriteLine($"Id: {item.Id} Field: {col.Key} Value: {col.Value}");
                        }
                    }
                }
            }
        }