in src/Epam.GraphQL/Diagnostics/Internals/ObjectConfigurationContextBase.cs [23:98]
public void AppendBody(StringBuilder stringBuilder, IEnumerable<IConfigurationContext> choosenItems, int indent)
{
var indicies = new List<int>();
var choosenItemList = choosenItems.ToList();
if (choosenItemList.Count == 0)
{
indicies.AddRange(Enumerable.Range(0, Children.Count));
}
else
{
for (var i = 0; i < Children.Count; i++)
{
var index = choosenItemList.FindIndex(choosenItem => ReferenceEquals(choosenItem, Children[i]) || Children[i].Contains(choosenItem));
if (index >= 0)
{
if (i > 0)
{
indicies.Add(i - 1);
}
indicies.Add(i);
if (i < Children.Count - 1)
{
indicies.Add(i + 1);
}
}
}
indicies = indicies
.Distinct()
.OrderBy(index => index)
.ToList();
}
var nextIndex = 0;
foreach (var index in indicies)
{
if (index != nextIndex)
{
stringBuilder.Append(' ', 4 * indent);
stringBuilder.AppendLine("// ...");
stringBuilder.AppendLine();
}
if (nextIndex > 0)
{
stringBuilder.AppendLine();
}
var child = Children[index];
child.Append(stringBuilder, choosenItems, indent);
if (choosenItems.Contains(child))
{
stringBuilder.Append(" // <-----");
}
stringBuilder.AppendLine();
nextIndex = index + 1;
}
if (nextIndex != Children.Count)
{
if (indicies.Count > 0)
{
stringBuilder.AppendLine();
}
stringBuilder.Append(' ', 4 * indent);
stringBuilder.AppendLine("// ...");
}
}