if (message.Type == ActivityTypes.ConversationUpdate)
{
Func<ChannelAccount, bool> isChatbot =
channelAcct => channelAcct.Id == message.Recipient.Id;
if (message.MembersAdded.Any(isChatbot))
{
var memberAdded = message.MembersAdded.FirstOrDefault();
//這裡請自行處理將該 user 的 Conversation 儲存起來,為了方便,這裡將它存在一個變數之中
WebApiApplication._ConversationReference = message.ToConversationReference();
}
}
|
using (var scope = DialogModule.BeginLifetimeScope(Conversation.Container, context.Activity.AsMessageActivity()))
{
var botDataStore = scope.Resolve<IBotDataStore<BotData>>();
var key = Address.FromActivity(context.Activity);
var botUserData = await botDataStore.LoadAsync(key, BotStoreType.BotUserData, default(CancellationToken));
botUserData.SetProperty<string>("dialog", "RootDialog:MessageReceivedAsync");
await botDataStore.SaveAsync(key, BotStoreType.BotUserData, botUserData, default(CancellationToken));
await botDataStore.FlushAsync(key, default(CancellationToken));
}
|
using (var scope = DialogModule.BeginLifetimeScope(Conversation.Container, context.Activity.AsMessageActivity()))
{
var botDataStore = scope.Resolve<IBotDataStore<BotData>>();
var key = Address.FromActivity(context.Activity);
var botUserData = await botDataStore.LoadAsync(key, BotStoreType.BotUserData, default(CancellationToken));
botUserData.SetProperty<string>("dialog", "RootDialog:MessageReceivedAsync");
await botDataStore.SaveAsync(key, BotStoreType.BotUserData, botUserData, default(CancellationToken));
//await botDataStore.FlushAsync(key, default(CancellationToken));
}
|
[
][
]public async Task<HttpResponseMessage> GetDialogData()
{
var resp = new HttpResponseMessage(HttpStatusCode.OK);
if (WebApiApplication._ConversationReference != null)
{
var message = WebApiApplication._ConversationReference.GetPostToBotMessage();
using (var scope = DialogModule.BeginLifetimeScope(Conversation.Container, message.AsMessageActivity()))
{
var botDataStore = scope.Resolve<IBotDataStore<BotData>>();
var key = Address.FromActivity(message);
var botUserData = await botDataStore.LoadAsync(key, BotStoreType.BotUserData, default(CancellationToken));
var dialogData = botUserData.GetProperty<string>("dialog");
resp.Content = new StringContent($"<html><body>Dialogs:{dialogData}</body></html>", System.Text.Encoding.UTF8, @"text/html");
}
}
return resp;
}
|