public async Task RestaurantReservationIntent(IDialogContext context, IAwaitable <IMessageActivity> activity, LuisResult result) { var message = await activity; await context.PostAsync($"Welcome to the reservation system! Analyzing your message '{message.Text}'..."); var reservation = new RestaurantReservation(); if (result.TryFindEntity(RestaurantReservation.Reservation_Weekday, out EntityRecommendation weekdayRecommendation)) { if (Enum.TryParse(weekdayRecommendation.Entity, ignoreCase: true, out DayOfWeek weekday)) { reservation.Weekday = weekday; } } if (result.TryFindEntity(RestaurantReservation.Reservation_Day, out EntityRecommendation dayRecommendation)) { if (DateTime.TryParse(dayRecommendation.Entity, out DateTime day)) { reservation.Day = day; } } if (result.TryFindEntity(RestaurantReservation.Reservation_Time, out EntityRecommendation timeRecommendation)) { if (DateTime.TryParse(timeRecommendation.Entity, out DateTime time)) { reservation.Time = time; } } if (result.TryFindEntity(RestaurantReservation.Reservation_Number, out EntityRecommendation numberRedommendation)) { if (int.TryParse(numberRedommendation.Entity, out int number)) { reservation.Number = number; } } var reservationForm = new FormDialog <RestaurantReservation>(reservation, BuildRestaurantReservationForm, FormOptions.PromptInStart, result.Entities); context.Call(reservationForm, ResumeAfterRestaurantReservation); }
public async Task OnCompleteRestaurantReservation(IDialogContext context, RestaurantReservation reservation) { await context.PostAsync($"Thanks for the reservation on {reservation.Day:d} at {reservation.Time:t} for {reservation.Number} people"); }