in Source/RulesEngine/Utils.cs [206:253]
public static void PrintCallIdRange(StringBuilder output, IEnumerable<ServiceCallItem> calls, UInt32 minRangeSize)
{
if (calls.Count() == 0)
{
return;
}
List<UInt32> range = new List<UInt32>();
UInt32 prevId = calls.First().m_id - 1;
for (int i = 0; i < calls.Count(); ++i)
{
UInt32 localId = calls.ElementAt(i).m_id;
if (localId == prevId + 1)
{
range.Add(localId);
}
else
{
if (range.Count >= minRangeSize)
{
output.AppendFormat("{0}-{1}, ", range.First(), range.Last());
}
else
{
foreach (var id in range)
{
output.AppendFormat("{0}, ", id);
}
}
range.Clear();
range.Add(localId);
}
prevId = localId;
}
if (range.Count >= minRangeSize)
{
output.AppendFormat("{0}-{1}, ", range.First(), range.Last());
}
else
{
foreach (var id in range)
{
output.AppendFormat("{0}, ", id);
}
}
}