// ##############################################################################################################
        private SkillResponse WocheNachKategorieKommando(SkillRequest anfrage)
        {
            var intentRequest = (IntentRequest)anfrage.Request;

            if (intentRequest.DialogState.Equals("STARTED"))
            {
                return(ResponseBuilder.DialogDelegate(anfrage.Session, intentRequest.Intent));
            }
            else if (!intentRequest.DialogState.Equals("COMPLETED"))
            {
                return(ResponseBuilder.DialogDelegate(anfrage.Session));
            }
            else
            {
                var numberKW  = DateTime.Now.GetNumberOfWeeks();
                var kw        = DateTime.Now.GetWeekOfYear();
                var year      = DateTime.Now.Year;
                var kategorie = anfrage.GetSlotValueInt(SlotValues.Kategorie.ToString(), defaultValue);
                var nextWeek  = anfrage.GetSlotValueInt(SlotValues.NextWeek.ToString(), defaultValue) == defaultValue;

                if (!nextWeek)
                {
                    kw++;
                }
                if (kw > numberKW)
                {
                    kw = 1;
                    year++;
                }

                var speisePlan = GetSpeisePlaene(kw, year).Result;
                if (kategorie != defaultValue)
                {
                    return(WocheNachKategorieAntwortHelfer.GetWocheNachKategorieResponse(anfrage, speisePlan, kategorie, kw));
                }
                else
                {
                    return(AlexaAntwortHelfer.GibEinfacheAntwort(anfrage, SkillTypen.Error, FehlerTypen.FehlerAnfrage.ToDescription(), "", null, DateTime.Now, false));
                }
            }
        }
        private SkillResponse FarbeMischenIntent(SkillRequest request)
        {
            var response      = AlexaAntwortHelfer.GibEinfacheAntwort(request, SkillTypen.Error, FehlerTypen.FehlerAnfrage.ToDescription(), "", null, DateTime.Now, null);
            var intentRequest = (IntentRequest)request.Request;

            if (intentRequest.DialogState.Equals("STARTED"))
            {
                return(ResponseBuilder.DialogDelegate(request.Session, intentRequest.Intent));
            }
            else if (!intentRequest.DialogState.Equals("COMPLETED"))
            {
                return(ResponseBuilder.DialogDelegate(request.Session));
            }
            else
            {
                var text   = "Daraus ergibt sich";
                var farbe1 = request.GetSlotValueInt("FarbeEins", -1);
                var farbe2 = request.GetSlotValueInt("FarbeZwei", -1);

                if (farbe1 == 1 && farbe2 == 2 || farbe1 == 2 && farbe2 == 1)
                {
                    response = AlexaAntwortHelfer.GibEinfacheAntwort(request, SkillTypen.Error, $"{text} lila.", "", null, DateTime.Now, null);
                }
                else if (farbe1 == 1 && farbe2 == 3 || farbe1 == 3 && farbe2 == 1)
                {
                    response = AlexaAntwortHelfer.GibEinfacheAntwort(request, SkillTypen.Error, $"{text} orange.", "", null, DateTime.Now, null);
                }
                else if (farbe1 == 3 && farbe2 == 2 || farbe1 == 2 && farbe2 == 3)
                {
                    response = AlexaAntwortHelfer.GibEinfacheAntwort(request, SkillTypen.Error, $"{text} grün.", "", null, DateTime.Now, null);
                }
                else if (farbe1 == farbe2)
                {
                    response = AlexaAntwortHelfer.GibEinfacheAntwort(request, SkillTypen.Error, "<s>Hey</s>, die gleiche Farbe zu mischen ist witzlos.", "", null, DateTime.Now, null);
                }

                return(response);
            }
        }
        // ##############################################################################################################
        /// <summary>
        ///
        /// </summary>
        /// <param name="anfrage">Enthält die Anfrage vom Amazon Alexa Server</param>
        /// <returns></returns>
        private SkillResponse TagUndKategorieKommando(SkillRequest anfrage)
        {
            var intentRequest = (IntentRequest)anfrage.Request;

            if (intentRequest.DialogState.Equals("STARTED"))
            {
                return(ResponseBuilder.DialogDelegate(anfrage.Session, intentRequest.Intent));
            }
            else if (!intentRequest.DialogState.Equals("COMPLETED"))
            {
                return(ResponseBuilder.DialogDelegate(anfrage.Session));
            }
            else
            {
                var numberKW  = DateTime.Now.GetNumberOfWeeks();
                var kw        = DateTime.Now.GetWeekOfYear();
                var year      = DateTime.Now.Year;
                var kategorie = anfrage.GetSlotValueInt(SlotValues.Kategorie.ToString(), defaultValue);
                var tag       = anfrage.GetDateTime(SlotValues.Tag.ToString());

                if (tag == null)
                {
                    tag = DateTime.Now;
                }
                if (tag.Value.DayOfWeek < DateTime.Now.DayOfWeek)
                {
                    kw++;
                }
                if (kw > numberKW)
                {
                    kw = 1;
                    year++;
                }

                var speisePlan = GetSpeisePlaene(kw, year).Result;
                if (kategorie != defaultValue)
                {
                    return(EssenDetailsResponseHelper.GetEssenDetailsResponse(anfrage, speisePlan, kategorie, tag, 0));
                }
                else
                {
                    return(AlexaAntwortHelfer.GibEinfacheAntwort(anfrage, SkillTypen.Error, FehlerTypen.FehlerAnfrage.ToDescription(), "", null, tag.Value.Date, false));
                }
            }
        }