public List<Group> GetAvailableGroupObjectsInDirectory()
{
if (_allGroups == null)
{
var adClient = GetADClient();
_allGroups = new List<Group>();
IPagedCollection<IGroup> result = null;
do
{
if (result == null)
{
result = adClient.Groups.ExecuteAsync().Result;
}
else
{
result = result.GetNextPageAsync().Result;
}
foreach (Group group in result.CurrentPage)
{
_allGroups.Add(group);
}
} while (result.MorePagesAvailable);
}
return _allGroups;
}