public override async Task <SpeechletResponse> OnIntentAsync(IntentRequest intentRequest, Session session) { if (AlexaUtils.IsRequestInvalid(session)) { return(await Task.FromResult <SpeechletResponse>(InvalidApplicationId(session))); } var intent = intentRequest.Intent; var intentName = intent?.Name; switch (intentName.ToUpper()) { case "BALANCE": return(await GetBalance.GetResults(session)); case "TRANSACTIONS": return(await GetTransactions.GetResults(session, intentRequest.Intent.Slots["date"].Value)); case "PAYMENT": return(await MakePayment.GetResults(session, decimal.Parse(intentRequest.Intent.Slots["amount"].Value), intentRequest.Intent.Slots["account"].Value)); case "WINNERS": return(await Winners.GetResults()); case "MORTGAGE": return(await Mortgage.GetResults(session)); case "SAVINGS": return(await Insights.GetResults(session)); default: return(await Task.FromResult <SpeechletResponse>(GetOnLaunchAsyncResult(session))); } }