microsoft/teams.net

Public

mirrored from https://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.Api/Activities/Message/MessageReactionActivity.cs

86lines · modecode

1// Copyright (c) Microsoft Corporation. All rights reserved.
2// Licensed under the MIT License.
3
4#pragma warning disable ExperimentalTeamsReactions
5
6using System.Text.Json.Serialization;
7
8using Microsoft.Teams.Common;
9
10namespace Microsoft.Teams.Api.Activities;
11
12public partial class ActivityType : StringEnum
13{
14 public static readonly ActivityType MessageReaction = new("messageReaction");
15 public bool IsMessageReaction => MessageReaction.Equals(Value);
16}
17
18public class MessageReactionActivity() : Activity(ActivityType.MessageReaction)
19{
20 [JsonPropertyName("reactionsAdded")]
21 [JsonPropertyOrder(121)]
22 public IList<Messages.Reaction>? ReactionsAdded { get; set; }
23
24 [JsonPropertyName("reactionsRemoved")]
25 [JsonPropertyOrder(122)]
26 public IList<Messages.Reaction>? ReactionsRemoved { get; set; }
27
28 [Obsolete("Use the Reactions client instead.")]
29 public MessageReactionActivity AddReaction(Messages.Reaction reaction)
30 {
31 ReactionsAdded ??= [];
32 ReactionsAdded.Add(reaction);
33 return this;
34 }
35
36 [Obsolete("Use the Reactions client instead.")]
37 public MessageReactionActivity AddReaction(Messages.ReactionType type)
38 {
39 ReactionsAdded ??= [];
40 ReactionsAdded.Add(new() { Type = type });
41 return this;
42 }
43
44 [Obsolete("Use the Reactions client instead.")]
45 public MessageReactionActivity RemoveReaction(Messages.Reaction reaction)
46 {
47 ReactionsRemoved ??= [];
48
49 if (ReactionsAdded is not null)
50 {
51 var i = ReactionsAdded.ToList().FindIndex(r =>
52 r.Type.Equals(reaction.Type) && r.User?.Id == reaction.User?.Id
53 );
54
55 if (i > -1)
56 {
57 ReactionsAdded.RemoveAt(i);
58 return this;
59 }
60 }
61
62 ReactionsRemoved.Add(reaction);
63 return this;
64 }
65
66 [Obsolete("Use the Reactions client instead.")]
67 public MessageReactionActivity RemoveReaction(Messages.ReactionType type)
68 {
69 ReactionsRemoved ??= [];
70
71 if (ReactionsAdded is not null)
72 {
73 var i = ReactionsAdded.ToList().FindIndex(r => r.Type.Equals(type));
74
75 if (i > -1)
76 {
77 ReactionsAdded.RemoveAt(i);
78 return this;
79 }
80 }
81
82 ReactionsRemoved.Add(new() { Type = type });
83 return this;
84 }
85}
86#pragma warning restore ExperimentalTeamsReactions