Exemple #1
0
        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());
        }
Exemple #2
0
        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());
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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);
        }