using System; using System.IO; using InABox.Formatters; using Newtonsoft.Json; namespace InABox.Integration.Logikal { public class LogikalMessage : ICoreFormattable { public Guid ID { get; set; } public LogikalMethod Method { get; set; } public String Payload { get; set; } public static LogikalMessage Error(string message) { return new LogikalMessage() { ID = Guid.NewGuid(), Method = LogikalMethod.Error, Payload = JsonConvert.SerializeObject(new LogikalErrorResponse() { Message = message }) }; } public void Write(BinaryWriter writer) { writer.Write(ID.ToByteArray()); writer.Write((Int32)Method); writer.Write(Payload); } public void Read(BinaryReader reader) { ID = new Guid(reader.ReadBytes(16)); Method = (LogikalMethod)reader.ReadInt32(); Payload = reader.ReadString(); } } }