private async Task SetUserSessionData(TokenResponse token, UserInfoResponse user, AuthData authData, CancellationToken cancellationToken = default(CancellationToken)) { // Get the resumption cookie var address = new Address ( botId: authData.BotId, channelId: authData.ChannelId, userId: authData.UserId, conversationId: authData.ConversationId, serviceUrl: authData.ServiceUrl ); // resolve on going activity in bot var conversationReference = address.ToConversationReference(); var activity = conversationReference.GetPostToBotMessage(); // create user data var dataUser = new UserData(user.Claims); var authUser = GetAuthUser(token, dataUser.UserApplicationId); var activityAddress = Address.FromActivity(activity); var userState = await botDataRepository.LoadUserDataAsync(activityAddress, cancellationToken); userState.SetUserAuthData(authUser); userState.SetUserData(dataUser); await botDataRepository.SaveUserDataAsync(activityAddress, userState, cancellationToken); using (var scope = DialogModule.BeginLifetimeScope(Conversation.Container, activity)) { // resolve BotToUser var botToUser = scope.Resolve <IBotToUser>(); var reply = CreateLoginContinueActivity(activity, dataUser.Name); await botToUser.PostAsync(reply, cancellationToken); } }
public Task <BotData> GetBotDataAsync(IActivity activity) { return(botDataRepository.LoadUserDataAsync(activity)); }