microsoft/teams.net

Public

mirrored fromhttps://github.com/microsoft/teams.netAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
next/core

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

Libraries/Microsoft.Teams.Apps/Activities/Invokes/SignIn/TokenExchangeActivity.cs

133lines · modecode

1// Copyright (c) Microsoft Corporation. All rights reserved.
2// Licensed under the MIT License.
3
4using Microsoft.Teams.Api.Activities;
5using Microsoft.Teams.Api.Activities.Invokes;
6using Microsoft.Teams.Apps.Routing;
7
8namespace Microsoft.Teams.Apps.Activities.Invokes;
9
10[AttributeUsage(AttributeTargets.Method, Inherited = true)]
11public class TokenExchangeAttribute() : InvokeAttribute(Api.Activities.Invokes.Name.SignIn.TokenExchange, typeof(SignIn.TokenExchangeActivity))
12{
13 public override object Coerce(IContext<IActivity> context) => context.ToActivityType<SignIn.TokenExchangeActivity>();
14}
15
16public static partial class AppInvokeActivityExtensions
17{
18 [Obsolete("Use the handler with the cancellation token")]
19 public static App OnTokenExchange(this App app, Func<IContext<SignIn.TokenExchangeActivity>, Task> handler)
20 {
21 app.Router.Register(new Route()
22 {
23 Name = string.Join("/", [ActivityType.Invoke, Name.SignIn.TokenExchange]),
24 Type = app.Status is null ? RouteType.System : RouteType.User,
25 Handler = async context =>
26 {
27 await handler(context.ToActivityType<SignIn.TokenExchangeActivity>());
28 return null;
29 },
30 Selector = activity => activity is SignIn.TokenExchangeActivity
31 });
32
33 return app;
34 }
35
36 [Obsolete("Use the handler with the cancellation token")]
37 public static App OnTokenExchange(this App app, Func<IContext<SignIn.TokenExchangeActivity>, Task<Response<Api.TokenExchange.InvokeResponse>>> handler)
38 {
39 app.Router.Register(new Route()
40 {
41 Name = string.Join("/", [ActivityType.Invoke, Name.SignIn.TokenExchange]),
42 Type = app.Status is null ? RouteType.System : RouteType.User,
43 Handler = async context => await handler(context.ToActivityType<SignIn.TokenExchangeActivity>()),
44 Selector = activity => activity is SignIn.TokenExchangeActivity
45 });
46
47 return app;
48 }
49
50 [Obsolete("Use the handler with the cancellation token")]
51 public static App OnTokenExchange(this App app, Func<IContext<SignIn.TokenExchangeActivity>, Task<Api.TokenExchange.InvokeResponse>> handler)
52 {
53 app.Router.Register(new Route()
54 {
55 Name = string.Join("/", [ActivityType.Invoke, Name.SignIn.TokenExchange]),
56 Type = app.Status is null ? RouteType.System : RouteType.User,
57 Handler = async context => await handler(context.ToActivityType<SignIn.TokenExchangeActivity>()),
58 Selector = activity => activity is SignIn.TokenExchangeActivity
59 });
60
61 return app;
62 }
63
64 [Obsolete("Use the handler with the cancellation token")]
65 public static App OnTokenExchange(this App app, Func<IContext<SignIn.TokenExchangeActivity>, Task<Response>> handler)
66 {
67 app.Router.Register(new Route()
68 {
69 Name = string.Join("/", [ActivityType.Invoke, Name.SignIn.TokenExchange]),
70 Type = app.Status is null ? RouteType.System : RouteType.User,
71 Handler = async context => await handler(context.ToActivityType<SignIn.TokenExchangeActivity>()),
72 Selector = activity => activity is SignIn.TokenExchangeActivity
73 });
74
75 return app;
76 }
77
78 public static App OnTokenExchange(this App app, Func<IContext<SignIn.TokenExchangeActivity>, CancellationToken, Task> handler)
79 {
80 app.Router.Register(new Route()
81 {
82 Name = string.Join("/", [ActivityType.Invoke, Name.SignIn.TokenExchange]),
83 Type = app.Status is null ? RouteType.System : RouteType.User,
84 Handler = async context =>
85 {
86 await handler(context.ToActivityType<SignIn.TokenExchangeActivity>(), context.CancellationToken);
87 return null;
88 },
89 Selector = activity => activity is SignIn.TokenExchangeActivity
90 });
91
92 return app;
93 }
94
95 public static App OnTokenExchange(this App app, Func<IContext<SignIn.TokenExchangeActivity>, CancellationToken, Task<Response<Api.TokenExchange.InvokeResponse>>> handler)
96 {
97 app.Router.Register(new Route()
98 {
99 Name = string.Join("/", [ActivityType.Invoke, Name.SignIn.TokenExchange]),
100 Type = app.Status is null ? RouteType.System : RouteType.User,
101 Handler = async context => await handler(context.ToActivityType<SignIn.TokenExchangeActivity>(), context.CancellationToken),
102 Selector = activity => activity is SignIn.TokenExchangeActivity
103 });
104
105 return app;
106 }
107
108 public static App OnTokenExchange(this App app, Func<IContext<SignIn.TokenExchangeActivity>, CancellationToken, Task<Api.TokenExchange.InvokeResponse>> handler)
109 {
110 app.Router.Register(new Route()
111 {
112 Name = string.Join("/", [ActivityType.Invoke, Name.SignIn.TokenExchange]),
113 Type = app.Status is null ? RouteType.System : RouteType.User,
114 Handler = async context => await handler(context.ToActivityType<SignIn.TokenExchangeActivity>(), context.CancellationToken),
115 Selector = activity => activity is SignIn.TokenExchangeActivity
116 });
117
118 return app;
119 }
120
121 public static App OnTokenExchange(this App app, Func<IContext<SignIn.TokenExchangeActivity>, CancellationToken, Task<Response>> handler)
122 {
123 app.Router.Register(new Route()
124 {
125 Name = string.Join("/", [ActivityType.Invoke, Name.SignIn.TokenExchange]),
126 Type = app.Status is null ? RouteType.System : RouteType.User,
127 Handler = async context => await handler(context.ToActivityType<SignIn.TokenExchangeActivity>(), context.CancellationToken),
128 Selector = activity => activity is SignIn.TokenExchangeActivity
129 });
130
131 return app;
132 }
133}