microsoft/teams.net

Public

mirrored from https://github.com/microsoft/teams.netAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
v2.0.0-preview.6

Branches

Tags

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

Clone

HTTPS

Download ZIP

Libraries/Microsoft.Teams.Plugins/Microsoft.Teams.Plugins.AspNetCore.DevTools/Events/ActivityEvent.cs

57lines · modecode

1using System.Text.Json.Serialization;
2
3using Microsoft.Teams.Api;
4using Microsoft.Teams.Api.Activities;
5
6namespace Microsoft.Teams.Plugins.AspNetCore.DevTools.Events;
7
8public class ActivityEvent : IEvent
9{
10 [JsonPropertyName("id")]
11 [JsonPropertyOrder(0)]
12 public Guid Id { get; }
13
14 [JsonPropertyName("type")]
15 [JsonPropertyOrder(1)]
16 public string Type { get; }
17
18 [JsonPropertyName("body")]
19 [JsonPropertyOrder(2)]
20 public object? Body { get; }
21
22 [JsonPropertyName("chat")]
23 [JsonPropertyOrder(3)]
24 public Conversation Chat { get; set; }
25
26 [JsonPropertyName("error")]
27 [JsonPropertyOrder(4)]
28 public object? Error { get; set; }
29
30 [JsonPropertyName("sentAt")]
31 [JsonPropertyOrder(5)]
32 public DateTime SentAt { get; }
33
34 public ActivityEvent(string type, IActivity body, Conversation chat)
35 {
36 Id = Guid.NewGuid();
37 Type = $"activity.{type}";
38 Body = body;
39 Chat = chat;
40 SentAt = DateTime.Now;
41 }
42
43 public static ActivityEvent Received(IActivity body, Conversation chat)
44 {
45 return new("received", body, chat);
46 }
47
48 public static ActivityEvent Sent(IActivity body, Conversation chat)
49 {
50 return new("sent", body, chat);
51 }
52
53 public static ActivityEvent Err(IActivity body, Conversation chat, object error)
54 {
55 return new("error", body, chat) { Error = error };
56 }
57}