コード例 #1
0
        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);
            }
        }