LogikalMessage.cs 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. using System;
  2. using System.IO;
  3. using InABox.Formatters;
  4. using Newtonsoft.Json;
  5. namespace InABox.Integration.Logikal
  6. {
  7. public class LogikalMessage : ICoreFormattable
  8. {
  9. public Guid ID { get; set; }
  10. public LogikalMethod Method { get; set; }
  11. public String Payload { get; set; }
  12. public static LogikalMessage Error(string message)
  13. {
  14. return new LogikalMessage()
  15. {
  16. ID = Guid.NewGuid(),
  17. Method = LogikalMethod.Error,
  18. Payload = JsonConvert.SerializeObject(new LogikalErrorResponse()
  19. {
  20. Message = message
  21. })
  22. };
  23. }
  24. public void Write(BinaryWriter writer)
  25. {
  26. writer.Write(ID.ToByteArray());
  27. writer.Write((Int32)Method);
  28. writer.Write(Payload);
  29. }
  30. public void Read(BinaryReader reader)
  31. {
  32. ID = new Guid(reader.ReadBytes(16));
  33. Method = (LogikalMethod)reader.ReadInt32();
  34. Payload = reader.ReadString();
  35. }
  36. }
  37. }