in src/Core/Compiling/Policy/PublishToDarpCompiler.cs [18:59]
public void Handle(ICompilationContext context, InvocationExpressionSyntax node)
{
if (!node.TryExtractingConfigParameter<PublishToDarpConfig>(context, "publish-to-darp", out var values))
{
return;
}
var element = new XElement("publish-to-darp");
if (!element.AddAttribute(values, nameof(PublishToDarpConfig.Topic), "topic"))
{
context.Report(Diagnostic.Create(
CompilationErrors.RequiredParameterNotDefined,
node.GetLocation(),
"publish-to-darp",
nameof(PublishToDarpConfig.Topic)
));
return;
}
if (!values.TryGetValue(nameof(PublishToDarpConfig.Content), out var contentValue))
{
context.Report(Diagnostic.Create(
CompilationErrors.RequiredParameterNotDefined,
node.GetLocation(),
"publish-to-darp",
nameof(PublishToDarpConfig.Content)
));
return;
}
element.Value = contentValue.Value!;
element.AddAttribute(values, nameof(PublishToDarpConfig.PubSubName), "pub-sub-name");
element.AddAttribute(values, nameof(PublishToDarpConfig.IgnoreError), "ignore-error");
element.AddAttribute(values, nameof(PublishToDarpConfig.ResponseVariableName), "response-variable-name");
element.AddAttribute(values, nameof(PublishToDarpConfig.Timeout), "timeout");
element.AddAttribute(values, nameof(PublishToDarpConfig.Template), "template");
element.AddAttribute(values, nameof(PublishToDarpConfig.ContentType), "content-type");
context.AddPolicy(element);
}