public static async Task ProcessRequest(string requestType, Func <Task> handler) { try { if (requestType.Equals(BuiltInRequest.LaunchRequest) || requestType.Equals(CustomRequest.NewUserNameIntent) || requestType.Equals(BuiltInRequest.YesIntent) || !string.IsNullOrWhiteSpace(State.UserName)) { Logger.Write($"[{requestType}] handling started"); await handler(); Logger.Write($"[{requestType}] handling completed"); } else { Response.SetSpeech(false, false, SpeechManager.GetAskForUserNameSpeech() + SpeechManager.GetAskForUserNameReprompt(), SpeechManager.GetAskForUserNameReprompt()); } } catch (Exception ex) { Logger.Write($"Unable to process [{requestType}]"); Logger.Write($"Exception detail: {ex}"); Response.SetSpeech(true, false, SpeechManager.GetExceptionSpeech()); } }
public async Task HandleRequest() { await RequestProcessManager.ProcessRequest($"{BuiltInRequest.FallbackIntent}", async() => { await Task.Run(() => { State.NumPrompted++; if (State.NumPrompted % 3 == 0) { Response.SetSpeech(true, false, SpeechManager.GetExceptionSpeech()); } else { Response.SetSpeech(false, false, SpeechManager.GetNotUnderstandSpeech() + SpeechManager.GetTryAgainSpeech() + SpeechManager.GetWhatWouldYouDoSpeech(), SpeechManager.GetShortHelpSpeech() + SpeechManager.GetWhatWouldYouDoSpeech()); } }); }); }