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/MessageExtensions/SettingsActivity.cs

55lines · 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
10public static partial class MessageExtension
11{
12 [AttributeUsage(AttributeTargets.Method, Inherited = true)]
13 public class SettingAttribute() : InvokeAttribute(Api.Activities.Invokes.Name.MessageExtensions.Setting, typeof(MessageExtensions.SettingActivity))
14 {
15 public override object Coerce(IContext<IActivity> context) => context.ToActivityType<MessageExtensions.SettingActivity>();
16 }
17}
18
19public static partial class AppInvokeActivityExtensions
20{
21 [Obsolete("Use the handler with the cancellation token")]
22 public static App OnSetting(this App app, Func<IContext<MessageExtensions.SettingActivity>, Task> handler)
23 {
24 app.Router.Register(new Route()
25 {
26 Name = string.Join("/", [ActivityType.Invoke, Name.MessageExtensions.Setting]),
27 Type = app.Status is null ? RouteType.System : RouteType.User,
28 Handler = async context =>
29 {
30 await handler(context.ToActivityType<MessageExtensions.SettingActivity>());
31 return null;
32 },
33 Selector = activity => activity is MessageExtensions.SettingActivity
34 });
35
36 return app;
37 }
38
39 public static App OnSetting(this App app, Func<IContext<MessageExtensions.SettingActivity>, CancellationToken, Task> handler)
40 {
41 app.Router.Register(new Route()
42 {
43 Name = string.Join("/", [ActivityType.Invoke, Name.MessageExtensions.Setting]),
44 Type = app.Status is null ? RouteType.System : RouteType.User,
45 Handler = async context =>
46 {
47 await handler(context.ToActivityType<MessageExtensions.SettingActivity>(), context.CancellationToken);
48 return null;
49 },
50 Selector = activity => activity is MessageExtensions.SettingActivity
51 });
52
53 return app;
54 }
55}