microsoft/teams.net

Public

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

CodeCommitsIssuesPull requestsActionsInsightsSecurity
samples/migration-bot

Branches

Tags

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

Clone

HTTPS

Download ZIP

Libraries/Microsoft.Teams.Apps/Activities/Invokes/FileConsentActivity.cs

77lines · 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 FileConsentAttribute() : InvokeAttribute(Api.Activities.Invokes.Name.FileConsent, typeof(FileConsentActivity))
12{
13 public override object Coerce(IContext<IActivity> context) => context.ToActivityType<FileConsentActivity>();
14}
15
16public static partial class AppInvokeActivityExtensions
17{
18 public static App OnFileConsent(this App app, Func<IContext<FileConsentActivity>, Task> handler)
19 {
20 app.Router.Register(new Route()
21 {
22 Name = string.Join("/", [ActivityType.Invoke, Name.FileConsent]),
23 Type = app.Status is null ? RouteType.System : RouteType.User,
24 Handler = async context =>
25 {
26 await handler(context.ToActivityType<FileConsentActivity>());
27 return null;
28 },
29 Selector = activity => activity is FileConsentActivity
30 });
31
32 return app;
33 }
34
35 public static App OnFileConsent(this App app, Func<IContext<FileConsentActivity>, Task<object?>> handler)
36 {
37 app.Router.Register(new Route()
38 {
39 Name = string.Join("/", [ActivityType.Invoke, Name.FileConsent]),
40 Type = app.Status is null ? RouteType.System : RouteType.User,
41 Handler = context => handler(context.ToActivityType<FileConsentActivity>()),
42 Selector = activity => activity is FileConsentActivity
43 });
44
45 return app;
46 }
47
48 public static App OnFileConsent(this App app, Func<IContext<FileConsentActivity>, CancellationToken, Task> handler)
49 {
50 app.Router.Register(new Route()
51 {
52 Name = string.Join("/", [ActivityType.Invoke, Name.FileConsent]),
53 Type = app.Status is null ? RouteType.System : RouteType.User,
54 Handler = async context =>
55 {
56 await handler(context.ToActivityType<FileConsentActivity>(), context.CancellationToken);
57 return null;
58 },
59 Selector = activity => activity is FileConsentActivity
60 });
61
62 return app;
63 }
64
65 public static App OnFileConsent(this App app, Func<IContext<FileConsentActivity>, CancellationToken, Task<object?>> handler)
66 {
67 app.Router.Register(new Route()
68 {
69 Name = string.Join("/", [ActivityType.Invoke, Name.FileConsent]),
70 Type = app.Status is null ? RouteType.System : RouteType.User,
71 Handler = context => handler(context.ToActivityType<FileConsentActivity>(), context.CancellationToken),
72 Selector = activity => activity is FileConsentActivity
73 });
74
75 return app;
76 }
77}