public static async Task <bool> AddResourceGroupRbac(this ResourceGroup resourceGroup, string puidOrAltSec, string emailAddress, bool isFunctionContainer = false) { try { var objectId = await GetUserObjectId(puidOrAltSec, emailAddress); if (string.IsNullOrEmpty(objectId)) { return(false); } return((await new[] { resourceGroup.AddRbacAccess(objectId) } .Concat(resourceGroup.Sites.Where(s => !s.IsFunctionsContainer || isFunctionContainer).Select(s => s.AddRbacAccess(objectId))) .Concat(resourceGroup.ApiApps.Select(s => s.AddRbacAccess(objectId))) .Concat(resourceGroup.Gateways.Select(s => s.AddRbacAccess(objectId))) .Concat(resourceGroup.LogicApps.Select(s => s.AddRbacAccess(objectId))) .Concat(resourceGroup.ServerFarms.Select(s => s.AddRbacAccess(objectId))) .Concat(resourceGroup.StorageAccounts.Where(s => isFunctionContainer).Select(s => s.AddRbacAccess(objectId))) .WhenAll()) .All(e => e)); } catch { return(false); } }