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); }
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); }
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); }