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));
        }
コード例 #2
0
        // ##############################################################################################################
        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
            });
        }