public async Task <HashSet <string> > DirectoryRoles() { try { var directoryRoles = await GraphServiceHelper.GetDirectoryRolesAsync(_graphClient, _httpContext); var userIds = await GraphServiceHelper.GetUsersAsync(_graphClient, _httpContext); var administrators = new HashSet <string>(); var directoryRolesNames = new HashSet <string>(); await directoryRoles.ForEachAsync(async _ => { var roleMembers = await GraphServiceHelper.GetDirectoryRoleMembers(_graphClient, _httpContext, _.Id); var members = Extensions.DirectoryRoleMembersResultsToList(roleMembers); BloodHoundHelper.DirectoryRoleMembership(_, members); if (Startup.IsCosmosDbGraphEnabled) { CosmosDbGraphHelper.DirectoryRoleMembership(_, members); GetDeviceAdministratorsIds(_.DisplayName, members, administrators); CosmosDbGraphHelper.DirectoryRolePermissions(_, userIds, administrators); } directoryRolesNames.Add(_.DisplayName); }); return(directoryRolesNames); } catch (Exception ex) { _logger.Error(ex, $"{nameof(DirectoryRoles)} {ex.Message} {ex.InnerException}"); return(null); } }
public async Task <int> Users() { try { return((await GraphServiceHelper.GetUsersAsync(_graphClient, _httpContext)).Count); } catch (Exception ex) { _logger.Error(ex, $"{nameof(Users)} {ex.Message} {ex.InnerException}"); return(-1); } }