namespace vassago.ProtocolInterfaces; using vassago.Models; public abstract class ProtocolInterface { public static string Protocol { get; } public abstract Channel SelfChannel { get; } public abstract Task SendMessage(Channel channel, string text); public virtual async Task SendFile(Channel channel, string path, string accompanyingText) { if (!File.Exists(path)) { return 404; } var fstring = Convert.ToBase64String(File.ReadAllBytes(path)); return await SendFile(channel, fstring, Path.GetFileName(path), accompanyingText); } public abstract Task SendFile(Channel channel, string base64dData, string filename, string accompanyingText); public abstract Task React(Message message, string reaction); public abstract Task Reply(Message message, string text); }