private async Task <DialogTurnResult> InitialStepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken) { var conversation = await conversationStateAccessor.GetAsync(stepContext.Context, () => new ConversationData()); var allergiesEntities = conversation.LuisResult.Entities.Where(x => x.Type.Equals(Luis.AllergyEntity)).ToList(); if (conversation.User != null) { conversation.User.Allergies = conversation.User.Allergies ?? new List <string>(); } else { conversation.User = new ServiceContracts.Models.User { Allergies = new List <string>() }; } if (allergiesEntities.Count() > 0) { var allergies = new List <string>(); foreach (var item in allergiesEntities) { allergies.Add(LuisHelper.GetNormalizedValueFromEntity(item)); } return(await stepContext.NextAsync(allergies)); } return(await stepContext.NextAsync()); }
private async Task <DialogTurnResult> InitialStepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken) { var conversation = await conversationStateAccessor.GetAsync(stepContext.Context, () => new ConversationData()); var allergiesEntities = conversation.LuisResult.Entities.Where(x => x.Type.Equals(Luis.AllergyEntity)).ToList(); if (conversation.User != null) { if (allergiesEntities.Count() > 0) { var allergies = new List <string>(); foreach (var item in allergiesEntities) { allergies.Add(LuisHelper.GetNormalizedValueFromEntity(item)); } return(await stepContext.NextAsync(allergies)); } return(await stepContext.NextAsync()); } var message = messagesService.Get(MessagesKey.Key.RemoveAllergy_Error.ToString()).Value; await stepContext.Context.SendActivityAsync(message); return(await stepContext.EndDialogAsync()); }
private static string GetSubdialog(LuisResult luisResult) { var entity = luisResult.Entities.Where(x => x.Type.Equals(Luis.SubDialogs)).FirstOrDefault(); if (entity != null) { var entityNormalizeName = LuisHelper.GetNormalizedValueFromEntity(entity); return(entityNormalizeName + "Dialog"); } return(string.Empty); }
private async Task <bool> AllergyValidator(PromptValidatorContext <FoundChoice> promptContext, CancellationToken cancellationToken) { var conversation = await conversationStateAccessor.GetAsync(promptContext.Context, () => new ConversationData()); var allergy = conversation.LuisResult.Entities.Where(x => x.Type.Equals(Luis.AllergyEntity)).FirstOrDefault(); if (allergy != null) { var allergyName = LuisHelper.GetNormalizedValueFromEntity(allergy); conversation.User.Allergies.Add(allergyName); var message = messagesService.Get(MessagesKey.Key.AddAllergy_Added.ToString()).Value; await promptContext.Context.SendActivityAsync(string.Format(message, allergyName)); return(true); } return(false); }