microsoft/teams.net

Public

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

CodeCommitsIssuesPull requestsActionsInsightsSecurity
dev

Branches

Tags

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

Clone

HTTPS

Download ZIP

Libraries/Microsoft.Teams.Api/Clients/ConversationClient.cs

82lines · modecode

1// Copyright (c) Microsoft Corporation. All rights reserved.
2// Licensed under the MIT License.
3
4using System.Text.Json.Serialization;
5
6using Microsoft.Teams.Api.Activities;
7using Microsoft.Teams.Common.Http;
8
9namespace Microsoft.Teams.Api.Clients;
10
11public class ConversationClient : Client
12{
13 public readonly string ServiceUrl;
14 public readonly ActivityClient Activities;
15 public readonly MemberClient Members;
16
17 public ConversationClient(string serviceUrl, CancellationToken cancellationToken = default) : base(cancellationToken)
18 {
19 ServiceUrl = serviceUrl;
20 Activities = new ActivityClient(serviceUrl, _http, cancellationToken);
21 Members = new MemberClient(serviceUrl, _http, cancellationToken);
22 }
23
24 public ConversationClient(string serviceUrl, IHttpClient client, CancellationToken cancellationToken = default) : base(client, cancellationToken)
25 {
26 ServiceUrl = serviceUrl;
27 Activities = new ActivityClient(serviceUrl, _http, cancellationToken);
28 Members = new MemberClient(serviceUrl, _http, cancellationToken);
29 }
30
31 public ConversationClient(string serviceUrl, IHttpClientOptions options, CancellationToken cancellationToken = default) : base(options, cancellationToken)
32 {
33 ServiceUrl = serviceUrl;
34 Activities = new ActivityClient(serviceUrl, _http, cancellationToken);
35 Members = new MemberClient(serviceUrl, _http, cancellationToken);
36 }
37
38 public ConversationClient(string serviceUrl, IHttpClientFactory factory, CancellationToken cancellationToken = default) : base(factory, cancellationToken)
39 {
40 ServiceUrl = serviceUrl;
41 Activities = new ActivityClient(serviceUrl, _http, cancellationToken);
42 Members = new MemberClient(serviceUrl, _http, cancellationToken);
43 }
44
45 public async Task<ConversationResource> CreateAsync(CreateRequest request)
46 {
47 var req = HttpRequest.Post($"{ServiceUrl}v3/conversations", body: request);
48 var res = await _http.SendAsync<ConversationResource>(req, _cancellationToken);
49 return res.Body;
50 }
51
52 public class CreateRequest
53 {
54 [JsonPropertyName("isGroup")]
55 [JsonPropertyOrder(0)]
56 public bool? IsGroup { get; set; }
57
58 [JsonPropertyName("bot")]
59 [JsonPropertyOrder(1)]
60 public Account? Bot { get; set; }
61
62 [JsonPropertyName("members")]
63 [JsonPropertyOrder(2)]
64 public IList<Account>? Members { get; set; }
65
66 [JsonPropertyName("topicName")]
67 [JsonPropertyOrder(3)]
68 public string? TopicName { get; set; }
69
70 [JsonPropertyName("tenantId")]
71 [JsonPropertyOrder(4)]
72 public string? TenantId { get; set; }
73
74 [JsonPropertyName("activity")]
75 [JsonPropertyOrder(5)]
76 public IActivity? Activity { get; set; }
77
78 [JsonPropertyName("channelData")]
79 [JsonPropertyOrder(6)]
80 public IDictionary<string, object>? ChannelData { get; set; }
81 }
82}