// ############################################################################################################## /// <summary> /// Gibt die richtige Antwort auf eine Anfrage vom Typ SpeiseplanKommando /// </summary> /// <param name="anfrage">Enthält die Anfrage vom Amazon Alexa Server vom Typ SpeiseplanKommando</param> /// <returns></returns> private SkillResponse SpeisePlanKommando(SkillRequest anfrage) { var tag = anfrage.GetDateTime(SlotValues.Tag.ToString()); var kw = DateTime.Now.GetWeekOfYear(); var year = DateTime.Now.Year; var numberKW = DateTime.Now.GetNumberOfWeeks(); 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 (speisePlan != null) { return(SpeisePlanAntwortHelfer.GetSpeisePlanResponse(anfrage, speisePlan, tag)); } else { return(AlexaAntwortHelfer.GibEinfacheAntwort(anfrage, SkillTypen.Error, FehlerTypen.NoSpeisePlan.ToDescription(), "", null, tag.Value.Date, false)); } }
// ############################################################################################################## /// <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)); } } }