public async Task SendeErinnerung(Erinnerung e, ErinnerungsTyp erinnerungsTyp)
        {
            var smiley = GetRandomSmiley();
            var chatId = _dbRepository.GetChatIdFromBenutzer(e.Benutzer);

            SpeichereChatZustand(chatId, ZustandChat.WarteAufBestaetigungDerErinnerung);

            if (erinnerungsTyp == ErinnerungsTyp.ZusaetzlicheErinnerung)
            {
                _dbRepository.LoescheZusatzlicheErinnerung(e);
            }

            var zusätzlicherText = string.Empty;

            if (erinnerungsTyp == ErinnerungsTyp.UeberfaelligeErinnerung)
            {
                zusätzlicherText = $"🤖 Automatische Erinnerung nach einer Stunde 🤖{Environment.NewLine}{Environment.NewLine}";
            }
            else if (erinnerungsTyp == ErinnerungsTyp.ZusaetzlicheErinnerung)
            {
                zusätzlicherText = $"⌚ Zusätzliche Erinnerung ⌚{Environment.NewLine}{Environment.NewLine}";
            }

            await _telegramApi.SendeNachricht($"{zusätzlicherText}Hey {e.Benutzer.Name} 😎{Environment.NewLine}Denke an deine Tablette {smiley}{Environment.NewLine}{Environment.NewLine}1️⃣ Antworte mit 'Ok', wenn du deine Tablette genommen hast.{Environment.NewLine}2️⃣ Du kannst mir auch mit einer Uhrzeit antworten, wenn du später erinnert werden möchtest.{Environment.NewLine}3️⃣Wenn du mir nicht antwortest, erinnere ich dich in einer Stunde nochmal {GetRandomSmiley()}", chatId);

            var eg = new ErinnerungGesendet
            {
                ErinnerungId = e.Id,
                GesendetUm   = DateTime.UtcNow,
                IstZusaetzlicheErinnerung = erinnerungsTyp == ErinnerungsTyp.ZusaetzlicheErinnerung
            };

            _dbRepository.SpeichereErinnerungGesendet(eg);
        }
        private async Task SpeichereUhrzeit(Benutzer benutzer, long chatId, string nachrichtText)
        {
            var uhrzeitErinnerung = ParseUhrzeitAusNachricht(nachrichtText);

            if (uhrzeitErinnerung == null)
            {
                await _telegramApi.SendeNachricht($"Deine Eingabe ist keine valide Uhrzeit 🤨. Probiere es mit z.B. mit 21:00 für 21 Uhr", chatId);

                return;
            }

            var e = new Erinnerung
            {
                BenutzerId     = benutzer.Id,
                UhrzeitUtc     = uhrzeitErinnerung.Item1,
                GueltigAbDatim = DateTime.UtcNow.Date
            };

            if (e.UhrzeitUtc < new DateTime(2000, 1, 1, DateTime.UtcNow.Hour, DateTime.UtcNow.Minute, 0))
            {
                //Wenn die Uhrzeit heute schon vorbei ist, ist die Erinnerung ab morgen gültig
                e.GueltigAbDatim = DateTime.UtcNow.Date.AddDays(1);
            }

            _dbRepository.SpeichereErinnerung(e);

            SpeichereChatZustand(chatId, ZustandChat.Fertig);
            await _telegramApi.SendeNachricht($"Ich erinnere dich um {uhrzeitErinnerung.Item2:HH:mm} Uhr 💪", chatId);
        }
 public void LoescheZusatzlicheErinnerung(Erinnerung e)
 {
     using var d = Gdc();
     d.Erinnerung.Update(e);
     e.ZusaetzlicheErinnerung = null;
     d.SaveChanges();
 }
        public void SpeichereErinnerung(Erinnerung e)
        {
            using var d = Gdc();
            var dbErinnerung = d.Erinnerung.FirstOrDefault(x => x.Id == e.Id);

            if (dbErinnerung == null)
            {
                d.Erinnerung.Add(e);
                d.SaveChanges();
                return;
            }
            d.Erinnerung.Update(dbErinnerung);
            dbErinnerung.GueltigAbDatim         = e.GueltigAbDatim;
            dbErinnerung.UhrzeitUtc             = e.UhrzeitUtc;
            dbErinnerung.ZusaetzlicheErinnerung = e.ZusaetzlicheErinnerung;
            d.SaveChanges();
        }