/// <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);
                }
            }
        }
Example #2
0
        private IEnumerable <T> ParseEntity(IListItemsCollectionPage listItems)
        {
            List <T> resultList = new List <T>();

            foreach (ListItem item in listItems)
            {
                T entity = ItemParser.ParseItem(item);
                resultList.Add(entity);
            }

            return(resultList);
        }
Example #3
0
        public IEnumerable <T> GetListItems(string listId, string query = "")
        {
            IListItemsCollectionRequest listItemsCollectionRequest = ServiceClient.Sites[SiteId].Lists[listId].Items.Request();

            if (!String.IsNullOrEmpty(query))
            {
                listItemsCollectionRequest = listItemsCollectionRequest.Filter(query);
            }
            IListItemsCollectionPage listItems = listItemsCollectionRequest.Expand(listItem => listItem.Fields).GetAsync().Result;

            return(ParseEntity(listItems));
        }
        public async static Task <IListItemsCollectionPage> GetSiteListItems(string groupId, string siteId, string listId)
        {
            _graphClient = GraphServiceClientProvider.GetAuthenticatedClient();
            IListItemsCollectionPage listItems = await _graphClient
                                                 .Groups[groupId]
                                                 .Sites[siteId]
                                                 .Lists[listId]
                                                 .Items
                                                 .Request().Expand("fields")
                                                 .GetAsync();

            return(listItems);
        }
Example #5
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}");
                        }
                    }
                }
            }
        }
        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);
            }
        }
Example #7
0
        private async static Task <IListItemsCollectionPage> GetListItems(string listId)
        {
            IListItemsCollectionPage listItems = await Sites.GetSiteListItems(_groupId, _siteId, listId);

            return(listItems);
        }