public async Task <ActionResult <VolleMoehre.Contracts.Model.AuftrittsterminPublic> > Get(string id)
        {
            var auftritt = (await _store.GetAllAsync <VolleMoehre.Contracts.Model.Auftrittstermin>(a => a.Oeffentlich && a.Id == id)).FirstOrDefault();

            if (auftritt == null)
            {
                return(NotFound());
            }

            var result = new Contracts.Model.AuftrittsterminPublic()
            {
                Id                 = auftritt.Id,
                Datum              = auftritt.Datum,
                EintrittFrei       = auftritt.EintrittFrei,
                EintrittInfo       = auftritt.EintrittInfo,
                FreitextInfoExtern = auftritt.FreitextInfoExtern,
                Gegnerlink         = auftritt.Gegnerlink,
                Infolink           = auftritt.Infolink,
                Showtyp            = auftritt.Showtyp,
                Ort                = auftritt.SpezialOrtText
            };

            if (string.IsNullOrEmpty(auftritt.SpezialOrtText))
            {
                result.Ort = (await _store.GetAsync <Ort>(auftritt.OrtId)).Bezeichnung;
            }
            if (!string.IsNullOrEmpty(auftritt.SpezialTerminDescription))
            {
                result.Showtyp = auftritt.SpezialTerminDescription;
            }

            return(result);
        }
        // GET api/public/auftritte        [HttpGet]
        public async Task <ActionResult <IEnumerable <VolleMoehre.Contracts.Model.AuftrittsterminPublic> > > Get()
        {
            try
            {
                var auftritte = await _store.GetAllAsync <VolleMoehre.Contracts.Model.Auftrittstermin>(a => a.Oeffentlich && a.Datum >= DateTime.Now);

                List <VolleMoehre.Contracts.Model.AuftrittsterminPublic> retList = new List <Contracts.Model.AuftrittsterminPublic>();
                foreach (var auftritt in auftritte)
                {
                    var retAuftritt = new Contracts.Model.AuftrittsterminPublic()
                    {
                        Id                 = auftritt.Id,
                        Datum              = auftritt.Datum,
                        EintrittFrei       = auftritt.EintrittFrei,
                        EintrittInfo       = auftritt.EintrittInfo,
                        FreitextInfoExtern = auftritt.FreitextInfoExtern,
                        Gegnerlink         = auftritt.Gegnerlink,
                        Infolink           = auftritt.Infolink,
                        Showtyp            = auftritt.Showtyp,
                        Spielort           = auftritt.SpezialOrtText
                    };
                    foreach (var spieler in auftritt.Spieler)
                    {
                        retAuftritt.Teilnehmer.Add((await _store.GetAsync <Spieler>(spieler)).Name);
                    }
                    foreach (var spieler in auftritt.Moderator)
                    {
                        retAuftritt.Teilnehmer.Add((await _store.GetAsync <Spieler>(spieler)).Name);
                    }
                    foreach (var spieler in auftritt.Helfer)
                    {
                        retAuftritt.Teilnehmer.Add((await _store.GetAsync <Spieler>(spieler)).Name);
                    }
                    if (string.IsNullOrEmpty(auftritt.SpezialOrtText))
                    {
                        var ort = await _store.GetAsync <Ort>(auftritt.OrtId);

                        if (ort != null)
                        {
                            retAuftritt.Spielort     = ort.Bezeichnung;
                            retAuftritt.Hausnummer   = ort.Hausnummer;
                            retAuftritt.Postleitzahl = ort.Postleitzahl;
                            retAuftritt.Ort          = ort.Stadt;
                            retAuftritt.AnfahrtLink  = ort.AnfahrtLink;
                            retAuftritt.Infolink     = ort.InfoLink;
                            retAuftritt.VVKLink      = ort.VVKLink;
                            if (string.IsNullOrEmpty(retAuftritt.EintrittInfo))
                            {
                                retAuftritt.EintrittInfo = ort.Eintritt;
                            }
                        }
                        else
                        {
                            retAuftritt.Ort = "nähere Informationen folgen";
                        }
                    }
                    if (!string.IsNullOrEmpty(auftritt.SpezialTerminDescription))
                    {
                        retAuftritt.Showtyp = auftritt.SpezialTerminDescription;
                    }


                    retList.Add(retAuftritt);
                }
                return(retList);
            }
            catch (Exception ex)
            {
                var ret = new List <Contracts.Model.AuftrittsterminPublic>();
                ret.Add(new AuftrittsterminPublic()
                {
                    Showtyp = ex.Message
                });
                return(ret);
            }
        }