public static async Task <IUser[]> GetUsersInGroupsAsync(IEnumerable <string> groupNames, QueryBehaviour behaviour) { // validate input parameters ParameterValidator.AssertIsNotNull("groupNames", groupNames); var nonEmptyGroups = groupNames.Where(o => !string.IsNullOrWhiteSpace(o)).ToArray(); ParameterValidator.AssertIsNotNullOrEmptyList("groupsNames", nonEmptyGroups); // return a list of users within the specified group var client = GetGroupsClient(); IUser[] users; if (behaviour == QueryBehaviour.All) { users = (IUser[])await client.Execute(o => o.GetUsersInGroupsAsync(nonEmptyGroups)); } else { users = (IUser[])await client.Execute(o => o.GetUsersInAnyGroupsAsync(nonEmptyGroups)); } return(users); }
public static async Task <IEnumerable <string> > GetEmailAddressesFromActiveDirectoryGroupsAsync( IEnumerable <string> groupNames) { // validate input parameters var parameterValue = groupNames as string[] ?? groupNames.ToArray(); ParameterValidator.AssertIsNotNullOrEmptyList("groupNames", parameterValue); // return a list of non-null email addresses for the members of the specified groups var users = await GetUsersInGroupsAsync(parameterValue, QueryBehaviour.Any); return(users.Select(o => o.Email.Trim()).Where(o => !string.IsNullOrEmpty(o))); }