in src/StructuredLogger/Construction/MessageProcessor.cs [160:229]
private void ProcessTaskParameter(TaskParameterEventArgs args)
{
string itemType = args.ItemType;
var items = args.Items;
var kind = args.Kind;
NamedNode parent = null;
BaseNode node = null;
if (kind == TaskParameterMessageKind.TaskInput || kind == TaskParameterMessageKind.TaskOutput)
{
var task = GetTask(args);
if (task == null || IgnoreParameters(task))
{
return;
}
bool isOutput = kind == TaskParameterMessageKind.TaskOutput;
string folderName = isOutput ? Strings.OutputItems : Strings.Parameters;
parent = task.GetOrCreateNodeWithName<Folder>(folderName);
node = CreateParameterNode(itemType, items, isOutput);
}
else if (
kind == TaskParameterMessageKind.AddItem ||
kind == TaskParameterMessageKind.RemoveItem ||
kind == TaskParameterMessageKind.SkippedTargetInputs ||
kind == TaskParameterMessageKind.SkippedTargetOutputs)
{
parent = GetTarget(args);
NamedNode named;
if (kind == TaskParameterMessageKind.AddItem)
{
named = new AddItem
{
LineNumber = args.LineNumber
};
}
else if (kind == TaskParameterMessageKind.RemoveItem)
{
named = new RemoveItem
{
LineNumber = args.LineNumber
};
}
else
{
named = new Folder();
if (kind == TaskParameterMessageKind.SkippedTargetInputs)
{
itemType = Strings.Inputs;
}
else
{
itemType = Strings.Outputs;
}
}
named.Name = itemType;
AddItems(items, named);
node = named;
}
if (node != null && parent != null)
{
parent.AddChild(node);
}
}