public async Task FindIntent(IDialogContext context, LuisResult result)
        {
            try
            {
                string CurState;
                CurState = Continuity.GetSavedState(context);
                string SearchTerm = BillDialogUtil.GetSearchTerm(result);

                string CurVoter;
                CurVoter = Continuity.GetSavedLegislator(context);

                DateTime MinTime;
                DateTime MaxTime;
                bool     Ok = BillDialogUtil.GetEntityDateRange(result, out MinTime, out MaxTime);
                // if (Ok)
                {
                    // await context.PostAsync($"SearchTerm = {SearchTerm} MinTime = {MinTime}, MaxTime = {MaxTime}");
                    // // context.Wait(MessageReceived);

                    OpenStateClientLib.OpenStateClient cli = new OpenStateClientLib.OpenStateClient();

                    Newtonsoft.Json.Linq.JArray arr = await cli.GetBillsFilteredAsync(CurState, MinTime, MaxTime, SearchTerm, null, ExtraGuiActionBill);

                    int CurrentBill = 0;

                    bool WillBeMore;
                    int  MaxToShow = Continuity.NumBillsToShowInGroup;
                    if (MaxToShow >= arr.Count)
                    {
                        MaxToShow  = arr.Count;
                        WillBeMore = false;
                    }
                    else
                    {
                        WillBeMore = true;
                    }

                    bool MoreToDisplay = false;
                    for (int ii = 0; ii < MaxToShow; ii++)
                    {
                        CurrentBill   = ii;
                        MoreToDisplay = (ii >= (arr.Count - 1));
                        await BillDialogUtil.DisplayOneBill(context, arr[ii], CurState, CurVoter);
                    }
                    if (MoreToDisplay)
                    {
                        await context.PostAsync("Type 'More' to see more bills.\n");
                    }
                    // context.ConversationData.SetValue(KeyBillNumber, CurrentBill + 1);
                    Continuity.SetSavedBillNumber(context, CurrentBill + 1);
                    if (WillBeMore)
                    {
                        // context.ConversationData.SetValue(KeyBillResults, arr);
                        Continuity.SetSavedBills(context, arr);
                        if (SearchTerm != null && SearchTerm != "")
                        {
                            await context.PostAsync($"Type 'More' to see more '{SearchTerm}' bills.\n");
                        }
                        else
                        {
                            await context.PostAsync("Type 'More' to see more bills.\n");
                        }
                    }
                    else
                    {
                        Continuity.RemoveSavedBills(context);
                    }
                }
                context.Wait(MessageReceived);
            }
            catch (System.Exception)
            {
            }
        }
        public async Task MoreIntent(IDialogContext context, LuisResult result)
        {
            int BillNumber = Continuity.GetSavedBillNumber(context);

            if (BillNumber < 0)
            {
                // none left
                await context.PostAsync("Not anymore bills to show.");

                context.Wait(MessageReceived);
                return;
            }
            string CurVoter = Continuity.GetSavedLegislator(context);

            Newtonsoft.Json.Linq.JArray arr = Continuity.GetSavedBills(context);
            string State = Continuity.GetSavedState(context);

            if (arr == null)
            {
                await context.PostAsync("No bills saved to show.");

                context.Wait(MessageReceived);
                return;
            }
            int NumLeft = arr.Count;

            if (BillNumber >= NumLeft)
            {
                // none left
                await context.PostAsync("No more bills to show.");

                context.Wait(MessageReceived);
                return;
            }
            int NumToShow = NumLeft;

            if (NumToShow > Continuity.NumBillsToShowInGroup)
            {
                NumToShow = Continuity.NumBillsToShowInGroup;
            }


            for (int i = BillNumber; i < BillNumber + NumToShow; i++)
            {
                if (arr != null && i < arr.Count)
                {
                    await BillDialogUtil.DisplayOneBill(context, arr[i], State, CurVoter);
                }
            }

            BillNumber += NumToShow;
            if (BillNumber < arr.Count)
            {
                Continuity.SetSavedBillNumber(context, BillNumber);
                await context.PostAsync("Type 'More' to see more bills.\n");
            }
            else
            {
                Continuity.SetSavedBills(context, null);
                Continuity.SetSavedBillNumber(context, -1);
            }
        }