public void Handle()

in src/Core/Compiling/Policy/ValidateContentCompiler.cs [18:76]


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

        XElement element = new("validate-content");

        if (!element.AddAttribute(values, nameof(ValidateContentConfig.UnspecifiedContentTypeAction),
                "unspecified-content-type-action"))
        {
            context.Report(Diagnostic.Create(
                CompilationErrors.RequiredParameterNotDefined,
                node.ArgumentList.GetLocation(),
                "validate-content",
                nameof(ValidateContentConfig.UnspecifiedContentTypeAction)
            ));
            return;
        }

        if (!element.AddAttribute(values, nameof(ValidateContentConfig.MaxSize), "max-size"))
        {
            context.Report(Diagnostic.Create(
                CompilationErrors.RequiredParameterNotDefined,
                node.ArgumentList.GetLocation(),
                "validate-content",
                nameof(ValidateContentConfig.MaxSize)
            ));
            return;
        }

        if (!element.AddAttribute(values, nameof(ValidateContentConfig.SizeExceededAction), "size-exceeded-action"))
        {
            context.Report(Diagnostic.Create(
                CompilationErrors.RequiredParameterNotDefined,
                node.ArgumentList.GetLocation(),
                "validate-content",
                nameof(ValidateContentConfig.SizeExceededAction)
            ));
            return;
        }

        element.AddAttribute(values, nameof(ValidateContentConfig.ErrorsVariableName), "errors-variable-name");

        // Handle ContentTypeMap
        if (values.TryGetValue(nameof(ValidateContentConfig.ContentTypeMap), out var contentTypeMapValue))
        {
            HandleContentTypeMap(context, contentTypeMapValue, element);
        }

        // Handle ContentTypes
        if (values.TryGetValue(nameof(ValidateContentConfig.Contents), out var contentTypesValue))
        {
            HandleContents(context, contentTypesValue, element);
        }

        context.AddPolicy(element);
    }