public static SkillResponse GetEssenDetailsResponse(SkillRequest request, List <SpeisePlan> wochenPlan, int kategorie, DateTime?tag, int id) { var pageToken = SkillTypen.EssensDetail; var tagesPlan = new List <SpeisePlan>(); var date = new DateTime(); var menue = new SpeisePlan(); if (id != -1) { date = tag.Value.Date; tagesPlan = wochenPlan.FindAll(p => p.Datum.Date == date); if (tagesPlan != null) { menue = tagesPlan.Find(m => m.Kategorie == kategorie); } } else { menue = wochenPlan.Find(p => p.Id == id); //menue = wochenPlan.Find(p => p.Id == id); } if (menue != null) { var content = CreateContent(menue); var speech = CreateSpeech(menue, date); var card = CreateCard(menue, date); var template = CreateTemplate(pageToken, content, kategorie, date); return(CreateBodySkillResponse(request, pageToken, template, speech, card, date, null)); } return(GibEinfacheAntwort(request, SkillTypen.Error, FehlerTypen.NoEssensDetails.ToDescription(), "", null, date, false)); }
// ############################################################################################################## private List <SpeisePlan> SpeisePlanConverter(List <SpeisePlanDB> heutigeMenues) { var result = new List <SpeisePlan>(); foreach (SpeisePlanDB tmp in heutigeMenues) { foreach (Gericht gericht in tmp.Gerichte) { var speise = new SpeisePlan(); speise.Beschreibung = gericht.Bezeichnung; speise.Id = gericht.ID; var values = Enum.GetValues(typeof(MenueKategorienDB)); foreach (MenueKategorienDB z in values) { if (gericht.Kategorie.Equals(z.ToDescription())) { speise.Kategorie = z.AsInt(); } } speise.Preis = Convert.ToDouble(gericht.Preis); speise.Datum = tmp.Datum; result.Add(speise); } } return(result); }
private static SkillBodyContent CreateContent(SpeisePlan menue) { return(new SkillBodyContent { Primaer = TextStyle.SetFont3(menue.Beschreibung), Sekundaer = TextStyle.SetFont2($"Preis: {menue.Preis.ToString("F2")} €"), Tertiaer = "", ImageUrl = "", }); }
private static IOutputSpeech CreateSpeech(SpeisePlan menue, DateTime tag) { var text = ""; var kategorie = ((MenueKategorien)menue.Kategorie).ToDescription(); if (tag.Date == DateTime.Now.Date) { text = $"{kategorie} ist heute: {menue.Beschreibung}."; } else { text = $"{kategorie} ist am {tag.Date.SayAsDateYear()}: {menue.Beschreibung}."; } return(new SsmlOutputSpeech { Ssml = $"<speak>{text}</speak>" }); }
private static ICard CreateCard(SpeisePlan menue, DateTime tag) { var url = skillParameter.FirstOrDefault(t => t.Typ == SkillTypen.EssensDetail)?.UrlCard; var title = ((MenueKategorien)menue.Kategorie).ToDescription(); var content = $"{menue.Beschreibung}, für {menue.Preis} €"; if (tag != null) { title += $" für {tag.Date.ToShortDateString()}"; } var cardImage = new CardImage { SmallImageUrl = url, LargeImageUrl = url }; return(new StandardCard { Title = ((MenueKategorien)menue.Kategorie).ToDescription(), Content = content, Image = cardImage }); }