private async Task <bool> ValidateItemPrompt(PromptValidatorContext <string> promptContext, CancellationToken cancellationToken)
        {
            var convState = await StateAccessor.GetAsync(promptContext.Context, () => new HospitalitySkillState());

            if (promptContext.Recognized.Succeeded && !string.IsNullOrWhiteSpace(promptContext.Recognized.Value))
            {
                var numWords = promptContext.Recognized.Value.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).Length;
                await GetEntities(promptContext.Context);

                // TODO handle if item not recognized as entity
                if (convState.ItemList.Count == 0 && (numWords == 1 || numWords == 2))
                {
                    var itemRequest = new ItemRequestClass {
                        Item = new string[] { promptContext.Recognized.Value }
                    };
                    convState.ItemList.Add(itemRequest);
                }

                if (convState.ItemList.Count > 0)
                {
                    return(await Task.FromResult(true));
                }
            }

            return(await Task.FromResult(false));
        }
        private async Task GetEntities(ITurnContext turnContext)
        {
            var convState = await StateAccessor.GetAsync(turnContext, () => new HospitalitySkillState());

            var entities = convState.LuisResult.Entities;

            if (entities.ItemRequest != null)
            {
                // items with quantity
                convState.ItemList.AddRange(entities.ItemRequest);
            }

            if (!string.IsNullOrWhiteSpace(entities.Item?[0]))
            {
                // items identified without specified quantity
                for (int i = 0; i < entities.Item.Length; i++)
                {
                    var itemRequest = new ItemRequestClass {
                        Item = new string[] { entities.Item[i] }
                    };
                    convState.ItemList.Add(itemRequest);
                }
            }
        }