private async Task SignInAsync(IDialogContext context, IAwaitable <object> result) { var activity = await result as Activity; var teamAccount = await context.GetTeamsAccountAsync(); userObjectId = teamAccount.ObjectId; var graphServiceClient = await AuthenticationHelper.GetGraphServiceClientSafeAsync(userObjectId, Permissions.Delegated); if (graphServiceClient != null) { context.Done(graphServiceClient); return; } var signCard = new SigninCard { Text = "Authentication Required", Buttons = new List <CardAction>() { new CardAction( ActionTypes.OpenUrl, "Sign into Office 365", value: signInUrl) } }; var message = context.MakeMessage(); message.Attachments.Add(signCard.ToAttachment()); await context.PostAsync(message); await context.SayAsync("Hi There! Nice to meet you. Please click the Sign into Office 365 button above."); var cancellationTokenSource = new CancellationTokenSource(TimeSpan.FromMinutes(SignInMinutes)); try { graphServiceClient = await GetGraphServiceClientAsync(activity, cancellationTokenSource.Token); } catch (TaskCanceledException ex) { var exception = new SignTimeoutException("Sign in timeout", ex); context.Fail(exception); // throw exception return; } context.Done(graphServiceClient); }
public async Task ClearDataAsync(IDialogContext context, LuisResult result) { context.UserData.Clear(); context.ConversationData.Clear(); var user = await context.GetTeamsAccountAsync(); var tokenCache = ADALTokenCache.Create(user.ObjectId); tokenCache.Clear(); await context.SayAsync("User & Conversation data were cleared. Token cache was cleared"); context.Wait(MessageReceived); }
public async Task StartAsync(IDialogContext context) { TeamsChannelAccount = await context.GetTeamsAccountAsync(); context.Wait(this.MessageReceivedAsync); }