-
Notifications
You must be signed in to change notification settings - Fork 834
/
Copy pathCardController.cs
66 lines (63 loc) · 2.23 KB
/
CardController.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;
using IncomingWebhook.Data.Models;
using Microsoft.AspNetCore.Mvc;
namespace IncomingWebhook.Controllers
{
/// <summary>
/// Controller class for sending card using incoming webhook.
/// </summary>
[Route("api")]
[ApiController]
public class CardController : ControllerBase
{
public static string url = "";
/// <summary>
/// Method to send card to team using incoming webhook.
/// </summary>
/// <returns></returns>
[HttpPost("Send")]
public async Task SendCardAsync([FromBody] CardEntity cardEntity)
{
try
{
url = cardEntity.WebhookUrl;
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var content = new StringContent(cardEntity.CardBody, System.Text.Encoding.UTF8, "application/json");
var response = await client.PostAsync(cardEntity.WebhookUrl, content);
}
catch (Exception ex)
{
throw ex;
}
}
/// <summary>
/// Method to save and send user response.
/// </summary>
/// <returns></returns>
[HttpPost("Save")]
public async Task SendResponse([FromBody] ResponseEntity entity)
{
try
{
string cardJson = @"{
""@type"": ""MessageCard"",
""summary"": ""Response Message"",
""sections"": [{
""activityTitle"": ""Welcome Message"",
""text"": ""Submitted response: "+entity.Comment+ @"""}]}";
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var content = new StringContent(cardJson, System.Text.Encoding.UTF8, "application/json");
var response = await client.PostAsync(url, content);
}
catch (Exception ex)
{
throw ex;
}
}
}
}