public IActionResult Webhook([FromBody] object request) { Response output = new Response(); try { string json = JsonConvert.SerializeObject(request); DialogFlowResponse model = JsonConvert.DeserializeObject <DialogFlowResponse>(json); output.Message = json; output.Status = true; output.Type = Enums.ResponseType.success; } catch (Exception ex) { Console.WriteLine(ex.Message); output.Message = ex.Message; output.Trace = ex.StackTrace; output.Data = ex.InnerException; } return(Json(output)); }
public DialogFlowResponse ActivityToResponse(Activity activity, DialogFlowRequest dialogFlowRequest) { var response = new DialogFlowResponse() { Payload = new ResponsePayload() { Google = new PayloadContent() { ExpectUserResponse = !Options.ShouldEndSessionByDefault, UserStorage = dialogFlowRequest.OriginalDetectIntentRequest.Payload.User.UserStorage } } }; // Send default empty response if no activity or invalid activity type sent if (activity == null || activity.Type != ActivityTypes.Message) { response.Payload.Google.ExpectUserResponse = false; return(response); } activity.ConvertAttachmentContent(); var simpleResponse = new SimpleResponse { Content = new SimpleResponseContent { DisplayText = activity.Text, Ssml = activity.Speak, TextToSpeech = activity.Text } }; var processedIntentStatus = ProcessHelperIntentAttachments(activity); // If we have a system intent to send - send it - with or without additional simple prompt if (processedIntentStatus.Intent != null) { response.Payload.Google.ExpectUserResponse = true; response.Payload.Google.SystemIntent = GetDialogFlowSystemIntentFromSystemIntent(processedIntentStatus); if (processedIntentStatus.AllowAdditionalInputPrompt) { response.Payload.Google.RichResponse = new RichResponse() { Items = new ResponseItem[] { simpleResponse } }; } return(response); } var responseItems = new List <ResponseItem> { simpleResponse }; responseItems.AddRange(GetResponseItemsFromActivityAttachments(activity)); response.Payload.Google.RichResponse = new RichResponse() { Items = responseItems.ToArray() }; // ensure InputHint is set as required for response if (activity.InputHint == null || activity.InputHint == InputHints.AcceptingInput) { activity.InputHint = Options.ShouldEndSessionByDefault ? InputHints.IgnoringInput : InputHints.ExpectingInput; } // check if we should be listening for more input from the user switch (activity.InputHint) { case InputHints.IgnoringInput: response.Payload.Google.ExpectUserResponse = false; break; case InputHints.ExpectingInput: response.Payload.Google.ExpectUserResponse = true; var suggestionChips = ConvertSuggestedActionsToSuggestionChips(activity); if (suggestionChips.Any()) { response.Payload.Google.RichResponse.Suggestions = suggestionChips.ToArray(); } break; } return(response); }
public V2Response GetDialogFlowResponse() { LuasTimesResponse luasTimesResponse = new LuasTimesResponse(OriginStation, Direction, DestinationStation); return(DialogFlowResponse.Tell(luasTimesResponse.Text, luasTimesResponse.Ssml)); }
public async Task <JsonResult> Post([FromBody] DialogFlowRequest request) { return(new JsonResult(DialogFlowResponse.GetFulfillmentTextResponse("The status is CLOSED!"))); }