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