microsoft/teams.net

Public

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

CodeCommitsIssuesPull requestsActionsInsightsSecurity
v2.0.0-preview.13

Branches

Tags

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

Clone

HTTPS

Download ZIP

Libraries/Microsoft.Teams.Apps/Activities/Conversations/ChannelRestoredActivity.cs

52lines · modecode

1// Copyright (c) Microsoft Corporation. All rights reserved.
2// Licensed under the MIT License.
3
4using Microsoft.Teams.Api.Activities;
5using Microsoft.Teams.Apps.Routing;
6
7namespace Microsoft.Teams.Apps.Activities;
8
9public static partial class Conversation
10{
11 [AttributeUsage(AttributeTargets.Method, Inherited = true)]
12 public class ChannelRestoredAttribute() : UpdateAttribute(ConversationUpdateActivity.EventType.ChannelRestored)
13 {
14 public override bool Select(IActivity activity)
15 {
16 if (activity is ConversationUpdateActivity update)
17 {
18 return update.ChannelData?.EventType == ConversationUpdateActivity.EventType.ChannelRestored;
19 }
20
21 return false;
22 }
23 }
24}
25
26public static partial class AppActivityExtensions
27{
28 public static App OnChannelRestored(this App app, Func<IContext<ConversationUpdateActivity>, Task> handler)
29 {
30 app.Router.Register(new Route()
31 {
32 Name = string.Join("/", [ActivityType.ConversationUpdate, ConversationUpdateActivity.EventType.ChannelRestored]),
33 Type = app.Status is null ? RouteType.System : RouteType.User,
34 Handler = async context =>
35 {
36 await handler(context.ToActivityType<ConversationUpdateActivity>());
37 return null;
38 },
39 Selector = activity =>
40 {
41 if (activity is ConversationUpdateActivity update)
42 {
43 return update.ChannelData?.EventType == ConversationUpdateActivity.EventType.ChannelRestored;
44 }
45
46 return false;
47 }
48 });
49
50 return app;
51 }
52}