private void _LavBaneOgKlasse(string klasse, string bane)
        {
            if (klasse != string.Empty)
            {
                Klasse k = this.classes.Find(kk => kk.Navn == klasse);
                if (k == null)
                {
                    k = new Klasse(klasse);
                    this.classes.Add(k);
                }

                if (bane != string.Empty)
                {
                    Bane b = this.baner.Find(bb => bb.Navn == bane);
                    if (b == null)
                    {
                        b = new Bane(bane);
                        this.baner.Add(b);
                    }

                    k.Bane = b;
                }
            }
        }
        public static string GruppeStartListe(bool isTxt, bool includeAll, IList <Loeber> loebere, Config config)
        {
            List <Gruppe> grupper = new List <Gruppe>();

            foreach (GruppeOgKlasse gk in config.gruppeOgKlasse) //.Where(item => item.LøbsKlasse.Trim() != "-" && item.LøbsKlasse.Trim() != string.Empty))
            {
                if (gk.LøbsKlasse != null && gk.LøbsKlasse.Trim() != "-" && gk.LøbsKlasse.Trim() != string.Empty)
                {
                    Gruppe g = grupper.Find(item => item.navn == gk.Gruppe);
                    if (g == null)
                    {
                        // lav gruppen
                        g = new Gruppe(gk.Gruppe, 0);
                        grupper.Add(g);
                    }

                    // tilføj klasse definitionen
                    if (!g.Klasser.Exists(k => k.LøbsKlasse != null && k.LøbsKlasse.Navn.Equals(gk.LøbsKlasse)))
                    {
                        Klasse kk = config.classes.Find(c => c.Navn == gk.LøbsKlasse);
                        g.Klasser.Add(new Klasseconfig(gk.Klasse, kk));
                    }
                }
            }

            StringBuilder sb = new StringBuilder();

            if (isTxt)
            {
                sb.AppendLine("Start liste");
                sb.AppendLine("===========");
                sb.AppendLine();
                foreach (Gruppe g in grupper)
                {
                    var kl  = config.gruppeOgKlasse.Where(gk => gk.Gruppe == g.navn).ToList().ConvertAll(kg => kg.LøbsKlasse);
                    var lll = loebere.Where(l => kl.Contains(l.Løbsklassenavn) && (includeAll || config.Klubber.FirstOrDefault(k => k.Navn.Equals(l.Klub.Navn) || k.NavnKort.Equals(l.Klub.Navn)) != null)).ToList();
                    if (lll.Count > 0)
                    {
                        sb.AppendLine();
                        sb.AppendLine("Gruppe " + g.navn);
                        sb.AppendLine("--------------");
                        sb.AppendLine(txtTable(lll.OrderBy(l => l.StartTid).ToList()));
                    }
                }
            }
            else
            {
                sb.AppendLine("<html>");
                sb.AppendLine("<body>");
                sb.AppendLine("<h1>Startliste</h1>");
                foreach (Gruppe g in grupper)
                {
                    var kl  = config.gruppeOgKlasse.Where(gk => gk.Gruppe == g.navn).ToList().ConvertAll(kg => kg.LøbsKlasse);
                    var lll = loebere.Where(l => kl.Contains(l.Løbsklassenavn) && (includeAll || config.Klubber.FirstOrDefault(k => k.Navn.Equals(l.Klub.Navn) || k.NavnKort.Equals(l.Klub.Navn)) != null)).ToList();
                    if (lll.Count > 0)
                    {
                        sb.AppendLine("<h3>Gruppe " + g.navn + "</h3>");
                        sb.AppendLine(htmlTable(g.navn, lll.OrderBy(l => l.StartTid).ToList()));
                    }
                }
                sb.AppendLine("</body>");
                sb.AppendLine("</html>");
            }

            return(sb.ToString());
        }