public WebhookResponseModel ChatGotNumber(DflowWebhookRequest dflow) { var model = new WebhookResponseModel(); var val = dflow.QueryResult.Parameters.Number; if (val == 0) { model.FulfillmentText = "Sorry, 0 isn't a valid input. Maybe try something else?"; } else { model.FulfillmentText = $"If you are looking for quotes, try asking me: Get me a quote\n" + $"or for MBS item number, ask me: what is item {val}"; model.OutputContexts = dflow.QueryResult.OutputContexts; } return(model); }
public async Task <ContentResult> DialogflowHandler() { var stopwatch = new Stopwatch(); stopwatch.Start(); var model = new WebhookResponseModel(); var reader = new StreamReader(Request.Body, Encoding.UTF8); var dflow = DflowWebhookRequest.FromJson(await reader.ReadToEndAsync()); switch (dflow.QueryResult.Intent.DisplayName) { case "Chat.gotNumber-item": model.FulfillmentText = await GetItemPrice(dflow.QueryResult.Parameters.Item.ToString()); break; case "MBS.getItemPrice": { model.FulfillmentText = await GetItemPrice(dflow.QueryResult.Parameters.Item.ToString()); break; } case "MBS.getItemPrice-details": { model.FulfillmentText = await GetItemDetails(dflow.QueryResult.Parameters.Item.ToString()); break; } case "MBS.getItemDetails-fee": { model.FulfillmentText = await GetItemPrice(dflow.QueryResult.Parameters.Item.ToString()); break; } case "MBS.getItemDetails": { model.FulfillmentText = await GetItemDetails(dflow.QueryResult.Parameters.Item.ToString()); break; } case "OSHC.GetQuote": { var duratype = dflow.QueryResult.Parameters.Duration.DurationDuration; var duration = dflow.QueryResult.Parameters.Duration.Value; if (duratype == "month" && duration < 61 || duratype == "year" && duration < 6) { model.FulfillmentText = OshcGetQuote(dflow); Console.WriteLine($"{stopwatch.Elapsed.ToString()} has elapsed"); Console.WriteLine(model.FulfillmentText); } else { model.FulfillmentText = "Sorry, the max duration I can get a quote for is 5 years or 60 months.\n" + "Please refer to https://immi.homeaffairs.gov.au/visas/getting-a-visa/visa-listing/student-500 for the max duration of student visa."; } break; } case "Chat.gotNumber": { model = ChatGotNumber(dflow); break; } } return(Content(model.ToJson(), "application/json")); }