62 lines
1.5 KiB
C#
62 lines
1.5 KiB
C#
using Newtonsoft.Json;
|
|
|
|
namespace ServerCommon;
|
|
|
|
public class EchoSystemSlackMessage
|
|
{
|
|
[JsonProperty("text")] public string Text { get; set; } = string.Empty;
|
|
}
|
|
|
|
public class EchoSystemSlackMessageBuilder
|
|
{
|
|
private EchoSystemSlackMessage m_message { get; set; } = new();
|
|
|
|
private string m_title { get; set; }
|
|
private string m_server_name { get; set; }
|
|
private string m_ip_port { get; set; }
|
|
|
|
private Dictionary<string, string> m_members { get; set; } = new();
|
|
|
|
public EchoSystemSlackMessageBuilder(string title, string serverName, string ipPort)
|
|
{
|
|
m_title = title;
|
|
m_server_name = serverName;
|
|
m_ip_port = ipPort;
|
|
}
|
|
|
|
public EchoSystemSlackMessageBuilder appendValue(string key, string value, bool useCodeBlock = false)
|
|
{
|
|
if (useCodeBlock)
|
|
{
|
|
value = $"```{value}```";
|
|
}
|
|
|
|
m_members.TryAdd(key, value);
|
|
return this;
|
|
}
|
|
|
|
public string build()
|
|
{
|
|
var txt = $">*Title*: {m_title}";
|
|
|
|
foreach (var member in m_members)
|
|
{
|
|
txt += $"\n>*{member.Key}*: {member.Value}";
|
|
}
|
|
|
|
if (!string.IsNullOrEmpty(m_server_name))
|
|
{
|
|
txt += $"\n>*Server*: {m_server_name}";
|
|
}
|
|
|
|
if (!string.IsNullOrEmpty(m_ip_port))
|
|
{
|
|
txt += $"\n>*IP/Port*: {m_ip_port}";
|
|
}
|
|
|
|
m_message = new EchoSystemSlackMessage { Text = txt };
|
|
var message = JsonConvert.SerializeObject(m_message);
|
|
|
|
return message;
|
|
}
|
|
} |