microsoft/teams.net

Public

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

CodeCommitsIssuesPull requestsActionsInsightsSecurity
pr-134

Branches

Tags

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

Clone

HTTPS

Download ZIP

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

77lines · 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
16 public ConversationClient(string serviceUrl, CancellationToken cancellationToken = default) : base(cancellationToken)
17 {
18 ServiceUrl = serviceUrl;
19 Activities = new ActivityClient(serviceUrl, _http, cancellationToken);
20 }
21
22 public ConversationClient(string serviceUrl, IHttpClient client, CancellationToken cancellationToken = default) : base(client, cancellationToken)
23 {
24 ServiceUrl = serviceUrl;
25 Activities = new ActivityClient(serviceUrl, _http, cancellationToken);
26 }
27
28 public ConversationClient(string serviceUrl, IHttpClientOptions options, CancellationToken cancellationToken = default) : base(options, cancellationToken)
29 {
30 ServiceUrl = serviceUrl;
31 Activities = new ActivityClient(serviceUrl, _http, cancellationToken);
32 }
33
34 public ConversationClient(string serviceUrl, IHttpClientFactory factory, CancellationToken cancellationToken = default) : base(factory, cancellationToken)
35 {
36 ServiceUrl = serviceUrl;
37 Activities = new ActivityClient(serviceUrl, _http, cancellationToken);
38 }
39
40 public async Task<ConversationResource> CreateAsync(CreateRequest request)
41 {
42 var req = HttpRequest.Post($"{ServiceUrl}v3/conversations", body: request);
43 var res = await _http.SendAsync<ConversationResource>(req, _cancellationToken);
44 return res.Body;
45 }
46
47 public class CreateRequest
48 {
49 [JsonPropertyName("isGroup")]
50 [JsonPropertyOrder(0)]
51 public bool? IsGroup { get; set; }
52
53 [JsonPropertyName("bot")]
54 [JsonPropertyOrder(1)]
55 public Account? Bot { get; set; }
56
57 [JsonPropertyName("members")]
58 [JsonPropertyOrder(2)]
59 public IList<Account>? Members { get; set; }
60
61 [JsonPropertyName("topicName")]
62 [JsonPropertyOrder(3)]
63 public string? TopicName { get; set; }
64
65 [JsonPropertyName("tenantId")]
66 [JsonPropertyOrder(4)]
67 public string? TenantId { get; set; }
68
69 [JsonPropertyName("activity")]
70 [JsonPropertyOrder(5)]
71 public IActivity? Activity { get; set; }
72
73 [JsonPropertyName("channelData")]
74 [JsonPropertyOrder(6)]
75 public IDictionary<string, object>? ChannelData { get; set; }
76 }
77}