public void Handle()

in src/Core/Compiling/Policy/GetAuthorizationContextCompiler.cs [18:68]


    public void Handle(ICompilationContext context, InvocationExpressionSyntax node)
    {
        if (!node.TryExtractingConfigParameter<GetAuthorizationContextConfig>(
                context,
                "get-authorization-context",
                out var values))
        {
            return;
        }

        var element = new XElement("get-authorization-context");

        if (!element.AddAttribute(values, nameof(GetAuthorizationContextConfig.ProviderId), "provider-id"))
        {
            context.Report(Diagnostic.Create(
                CompilationErrors.RequiredParameterNotDefined,
                node.GetLocation(),
                "get-authorization-context",
                nameof(GetAuthorizationContextConfig.ProviderId)
            ));
            return;
        }

        if (!element.AddAttribute(values, nameof(GetAuthorizationContextConfig.AuthorizationId), "authorization-id"))
        {
            context.Report(Diagnostic.Create(
                CompilationErrors.RequiredParameterNotDefined,
                node.GetLocation(),
                "get-authorization-context",
                nameof(GetAuthorizationContextConfig.AuthorizationId)
            ));
            return;
        }

        if (!element.AddAttribute(values, nameof(GetAuthorizationContextConfig.ContextVariableName), "context-variable-name"))
        {
            context.Report(Diagnostic.Create(
                CompilationErrors.RequiredParameterNotDefined,
                node.GetLocation(),
                "get-authorization-context",
                nameof(GetAuthorizationContextConfig.ContextVariableName)
            ));
            return;
        }

        element.AddAttribute(values, nameof(GetAuthorizationContextConfig.IdentityType), "identity-type");
        element.AddAttribute(values, nameof(GetAuthorizationContextConfig.Identity), "identity");
        element.AddAttribute(values, nameof(GetAuthorizationContextConfig.IgnoreError), "ignore-error");

        context.AddPolicy(element);
    }