public void TabSubmitInits(TabEntityContext tabEntityContext, TabContext tabContext, TabSubmitData tabSubmitData) { var submit = new TabSubmit() { TabEntityContext = tabEntityContext, Context = tabContext, Data = tabSubmitData, }; Assert.NotNull(submit); Assert.IsType <TabSubmit>(submit); Assert.Equal(tabEntityContext, submit.TabEntityContext); Assert.Equal(tabContext, submit.Context); Assert.Equal(tabSubmitData, submit.Data); }
/// <summary> /// Override this in a derived class to provide logic for when a tab is submitted. /// </summary> /// <param name="turnContext">A strongly-typed context object for this turn.</param> /// <param name="tabSubmit">The tab submit invoke request value payload.</param> /// <param name="cancellationToken">A cancellation token that can be used by other objects /// or threads to receive notice of cancellation.</param> /// <returns>A Tab Response for the request.</returns> protected virtual Task <TabResponse> OnTeamsTabSubmitAsync(ITurnContext <IInvokeActivity> turnContext, TabSubmit tabSubmit, CancellationToken cancellationToken) { throw new InvokeResponseException(HttpStatusCode.NotImplemented); }
/// <summary> /// Invoked when an submit activity is recieved for tab. /// </summary> /// <param name="turnContext"></param> /// <param name="tabSubmit"></param> /// <param name="cancellationToken"></param> /// <returns>Tab response.</returns> protected async override Task <TabResponse> OnTeamsTabSubmitAsync(ITurnContext <IInvokeActivity> turnContext, TabSubmit tabSubmit, CancellationToken cancellationToken) { var userTokenClient = turnContext.TurnState.Get <UserTokenClient>(); await userTokenClient.SignOutUserAsync(turnContext.Activity.From.Id, _connectionName, turnContext.Activity.ChannelId, cancellationToken); return(new TabResponse { Tab = new TabResponsePayload { Type = "continue", Value = new TabResponseCards { Cards = new List <TabResponseCard> { new TabResponseCard { Card = CardHelper.GetSignOutCard() }, }, }, }, }); }