I have a "GetPersonsPerDepartment()" method returning a IQueryable<IEnumerable<Person>>
while I'm trying to get a simple List<Person>
or IEnumerable<Person>
with all the persons from every department. I wrote a simple method GetAllPersons() that solves this with a loop but I feel I must be missing a simple command to get the same result:
private List<Person> GetAllPersons()
{
List<Person> allPersons = new List<Person>();
foreach(var Persons in GetPersonsPerDepartment())
{
allPersons.AddRange(Persons);
}
return allPersons;
}
private IQueryable<IEnumerable<Person>> GetPersonsPerDepartment()
{
IQueryable<IEnumerable<Person>> Persons;
using (var context = MySource.GetPersonsContext())
{
var library = "Personlist";
var PersonFolderList = context.Web.Lists.GetByTitle(library);
context.Load<List>(PersonFolderList);
var PersonFolderListItems = PersonFolderList.GetItems(new CamlQuery());
context.Load<ListItemCollection>(PersonFolderListItems);
context.ExecuteQuery();
Persons = PersonFolderListItems.Where(x => x.FileSystemObjectType == FileSystemObjectType.Folder).Select(x => GetPersonsFromFolderListItem(x, context, PersonFolderList));
}
return Persons;
}