예제 #1
0
        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()
                            },
                        },
                    },
                },
            });
        }