public Task GetAsync()

in src/Azure.Deployments.Extensibility.Providers.ThirdParty/ThirdPartyExtensibilityProvider.cs [31:62]


    public Task<ExtensibilityOperationResponse> GetAsync(ExtensibilityOperationRequest request, CancellationToken cancellationToken) =>
        this.HandleRequestByContainerRegistryAsync(operation: "get", request: request, cancellation: cancellationToken);

    public Task<ExtensibilityOperationResponse> PreviewSaveAsync(ExtensibilityOperationRequest request, CancellationToken cancellationToken) =>
        this.HandleRequestByContainerRegistryAsync(operation: "previewSave", request: request, cancellation: cancellationToken);

    public Task<ExtensibilityOperationResponse> SaveAsync(ExtensibilityOperationRequest request, CancellationToken cancellationToken) =>
        this.HandleRequestByContainerRegistryAsync(operation: "save", request: request, cancellation: cancellationToken);

    public Task<ExtensibilityOperationResponse> DeleteAsync(ExtensibilityOperationRequest request, CancellationToken cancellationToken) =>
        this.HandleRequestByContainerRegistryAsync(operation: "delete", request: request, cancellation: cancellationToken);


    private async Task<ExtensibilityProviderContainerRegistry?> TryGetExtensibilityProviderContainerRegistry(string providerName, string tag, CancellationToken cancellation)
    {
        var client = new ContainerRegistryClient(new($"https://{ContainerRegistryHostname}"), new ContainerRegistryClientOptions
        {
            Audience = ContainerRegistryAudience.AzureResourceManagerPublicCloud,
        });

        var serverRepo = $"{providerName}/server";
        try
        {
            await client.GetRepository(serverRepo).GetArtifact(tag).GetManifestPropertiesAsync(cancellation);

            return new ExtensibilityProviderContainerRegistry(ContainerRegistry: $"{ContainerRegistryHostname}/{serverRepo}", ExternalPort: ExtensibilityContainerPort);
        }
        catch (RequestFailedException ex) when (ex.Status == 404)
        {
            return null;
        }
    }