Пример #1
0
        private static async Task ReportUsage(IDialogContext context, ElectricityUsageQuery query)
        {
            var usage = ElectricityUsageAPI.GetElectricityUsage(query.Area.GetValueOrDefault().ToEnglishString());
            await context.PostAsync(usage != null?string.Format("{0}kWです", usage) : "取得できませんでした。。");

            context.PerUserInConversationData.SetValue("state", BotState.Default);
        }
Пример #2
0
        public async Task ShowUsageAsync(IDialogContext context, IAwaitable <bool> argument)
        {
            var confirm = await argument;

            if (confirm)
            {
                var usage = ElectricityUsageAPI.GetElectricityUsage("tokyo");
                await context.PostAsync(usage != null?string.Format("{0}kWです", usage) : "取得できませんでした。。");
            }
            else
            {
                await context.PostAsync(string.Format("では、やめておきますね。。余談ですが、あなた{0}秒間迷っていましたよ。", (int)(DateTime.Now - this.PrevTime).TotalSeconds));
            }
            context.PerUserInConversationData.SetValue("state", BotState.Default);
            this.ResetTime = true;
            context.Wait(MessageReceivedAsync);
        }
Пример #3
0
        public virtual async Task MessageReceivedAsync(IDialogContext context, IAwaitable <Message> argument)
        {
            if (ResetTime)
            {
                this.PrevTime  = DateTime.Now;
                this.ResetTime = false;
            }
            var message = await argument;
            var usage   = ElectricityUsageAPI.GetElectricityUsage("tokyo");

            PromptDialog.Confirm(
                context,
                ShowUsageAsync,
                "東京電力の電力使用状況を取得します。よろしいですか?",
                "わかりませんでした。「はい」か「いいえ」でお答えください。",
                promptStyle: PromptStyle.None);
        }