private async Task MenuReplyReceived(IDialogContext context, IAwaitable <IMessageActivity> result) { var response = await result; if (response.Text == _priceDialogCommand) { var form = new FormDialog <PriceCalculationForm>(new PriceCalculationForm(), PriceCalculationForm.BuildForm, FormOptions.PromptInStart); context.Call <PriceCalculationForm>(form, FormEnded); } else if (response.Text == _failDialogCommand) { await context.Delay(2000); throw new Exception(); } else if (response.Text == _cancelDialogCommand) { await context.Delay(1500); await context.PostAsync("До свидания, обращайтесь еще", MessageLocale.RuRu); context.Done <object>(null); } else { await context.Forward(new MenuReplyLuisDialog(), DialogEnded, response, context.CancellationToken); } }
public async Task ProcessGoodbye(IDialogContext context, LuisResult result) { await context.Delay(1000); await context.PostAsync("Всего доброго, обращайтесь еще", MessageLocale.RuRu); context.Done(false); }
public async Task ProcessThankYou(IDialogContext context, LuisResult result) { await context.Delay(1000); await context.PostAsync("Не за что, обращайтесь", MessageLocale.RuRu); context.Done(false); }
public async Task ProcessHello(IDialogContext context, LuisResult result) { await context.Delay(1000); await context.PostAsync("Добрый день еще раз! Чем могу помочь?", MessageLocale.RuRu); context.Done(false); }
private async Task FormEnded(IDialogContext context, IAwaitable <PriceCalculationForm> result) { await context.Delay(3000); var message = PopulateMenuMessage(context.MakeMessage(), title: "Чем еще я могу вам помочь?"); await context.PostAsync(message, context.CancellationToken); context.Wait(MenuReplyReceived); }
private async Task InitialMessageReceived(IDialogContext context, IAwaitable <object> result) { await context.PostAsync("Добрый день!", MessageLocale.RuRu); await context.Delay(1000); var message = PopulateMenuMessage(context.MakeMessage(), title: "Чем я могу вам помочь?"); await context.PostAsync(message, context.CancellationToken); context.Wait(MenuReplyReceived); }
public async Task ProcessNone(IDialogContext context, LuisResult result) { var searcher = new StubQnaSeracher(); var answer = searcher.Search(context?.Activity?.AsMessageActivity()?.Text); if (answer == null) { var text = "К сожалению, мне не удалось вас понять. Повторите запрос или позвоните нам по телефону 8(800)100-22-20"; await context.PostAsync(text, "ru-RU"); context.Done(false); } else { await context.PostAsync(answer.Answer); await context.Delay(1000); var otherLinksMessage = context.MakeMessage(); var otherLinksText = "Другие ссылки, которые могут быть полезны:\n\n"; otherLinksText += String.Join("\n", answer.Links.Select(l => "* [" + l.Title + "](" + l.Uri.ToString() + ")")) + "\n\n"; await context.PostAsync(otherLinksText); await context.Delay(1000); var otherLinksCard = new ThumbnailCard(text: "Не нашли того, что хотели? Позвоните нам!", buttons: new List <CardAction> { new CardAction { Type = ActionTypes.OpenUrl, Title = "8(800)100-22-20", Value = "tel:+78001002220" } }); otherLinksMessage.Attachments.Add(otherLinksCard.ToAttachment()); await context.PostAsync(otherLinksMessage); context.Done(true); } }
private async Task DialogEnded(IDialogContext context, IAwaitable <bool> result) { var dialogDone = await result; if (dialogDone) { await context.Delay(2000); var message = PopulateMenuMessage(context.MakeMessage(), title: "Чем еще я могу вам помочь?"); await context.PostAsync(message, context.CancellationToken); } context.Wait(MenuReplyReceived); // Оценка опыта использования сервиса }