/// <summary>
 /// Maak een mooie samenvatting van de opgegeven nummers
 /// </summary>
 /// Probeer de nummers samen te vatten door een bereik te tonen.
 /// Waar niet mogelijk toon daar gewoon komma gescheiden nummers.
 /// Als het in beeld is dan wordt de eerste in ieder geval los getoond.
 /// <remarks>
 /// </remarks>
 private static string LiedVerzen(ILiturgieDisplay regelDisplay, bool toonEersteLos, IEnumerable<ILiturgieContent> vanDelen = null)
 {
     if (regelDisplay.VersenGebruikDefault.Gebruik || vanDelen == null || (!toonEersteLos && regelDisplay.VolledigeContent))
         return !string.IsNullOrEmpty(regelDisplay.VersenGebruikDefault.Tekst) ? regelDisplay.VersenGebruikDefault.Tekst : null;
     var over = vanDelen.Where(v => v.Nummer.HasValue).Select(v => v.Nummer.Value).ToList();
     if (!over.Any())
         return null;
     var builder = new StringBuilder();
     if (toonEersteLos)
     {
         builder.Append(over.First()).Append(", ");
         over.RemoveAt(0);
     }
     while (over.Any())
     {
         var nieuweReeks = new List<int> { over.First() };
         over.RemoveAt(0);
         while (over.Any() && over[0] == nieuweReeks.Last() + 1)
         {
             nieuweReeks.Add(over[0]);
             over.RemoveAt(0);
         }
         if (nieuweReeks.Count == 1)
             builder.Append(nieuweReeks[0]);
         else if (nieuweReeks.Count == 2)
             builder.Append(string.Join(", ", nieuweReeks));
         else
             builder.AppendFormat("{0} - {1}", nieuweReeks.First(), nieuweReeks.Last());
         builder.Append(", ");
     }
     return builder.ToString().TrimEnd(',', ' ');
 }
Пример #2
0
        /// <summary>
        /// Maak een mooie samenvatting van de opgegeven nummers
        /// </summary>
        /// Probeer de nummers samen te vatten door een bereik te tonen.
        /// Waar niet mogelijk toon daar gewoon komma gescheiden nummers.
        /// Als het in beeld is dan wordt de eerste in ieder geval los getoond.
        /// <remarks>
        /// </remarks>
        private static string LiedVerzen(ILiturgieDisplay regelDisplay, bool toonEersteLos, bool verkortBijVolledigeContent, IEnumerable <ILiturgieContent> vanDelen = null)
        {
            if (regelDisplay.VersenGebruikDefault != null || vanDelen == null || (!toonEersteLos && regelDisplay.VolledigeContent && verkortBijVolledigeContent))
            {
                return(regelDisplay.VersenGebruikDefault);
            }
            var over = vanDelen.Where(v => v.Nummer.HasValue).Select(v => v.Nummer.Value).ToList();

            if (!over.Any())
            {
                return(null);
            }
            var builder = new StringBuilder();

            if (toonEersteLos)
            {
                builder.Append(over.First()).Append(", ");
                over.RemoveAt(0);
            }
            while (over.Any())
            {
                var nieuweReeks = new List <int> {
                    over.First()
                };
                over.RemoveAt(0);
                while (over.Any() && over[0] == nieuweReeks.Last() + 1)
                {
                    nieuweReeks.Add(over[0]);
                    over.RemoveAt(0);
                }
                if (nieuweReeks.Count == 1)
                {
                    builder.Append(nieuweReeks[0]);
                }
                else if (nieuweReeks.Count == 2)
                {
                    builder.Append(string.Join(", ", nieuweReeks));
                }
                else
                {
                    builder.AppendFormat("{0} - {1}", nieuweReeks.First(), nieuweReeks.Last());
                }
                builder.Append(", ");
            }
            return(builder.ToString().TrimEnd(',', ' '));
        }