public static void PrintCallIdRange()

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);
                }
            }
        }