public static async Task <Microsoft.Azure.Management.Fluent.IAzure> GetAzure(this IAuthJanitorProvider provider) { return(await Microsoft.Azure.Management.Fluent.Azure .Configure() .Authenticate(provider.Credential.CreateAzureCredentials()) .WithDefaultSubscriptionAsync()); }
public async Task <IEnumerable <ProviderResourceSuggestion> > EnumerateProviders(AccessTokenCredential credential, IAuthJanitorProvider provider) { provider.Credential = credential; if (provider is ICanEnumerateResourceCandidates) { var enumerable = provider as ICanEnumerateResourceCandidates; try { var results = await enumerable.EnumerateResourceCandidates(GetProviderConfiguration(provider.GetType().AssemblyQualifiedName, provider.SerializedConfiguration)); return(results.Select(r => new ProviderResourceSuggestion() { Name = r.Name, ProviderType = r.ProviderType, Configuration = r.Configuration, SerializedConfiguration = JsonSerializer.Serialize <object>(r.Configuration), AddressableNames = r.AddressableNames.Distinct(), ResourceValues = r.ResourceValues.Distinct(), ResourcesAddressingThis = r.ResourcesAddressingThis })); } catch (Exception ex) { _serviceProvider.GetRequiredService <ILogger <ProviderManagerService> >().LogError(ex, "Error enumerating resource candidates for provider type " + provider.GetType().AssemblyQualifiedName); } } return(new ProviderResourceSuggestion[0]); }