LogikalRequest.cs 956 B

123456789101112131415161718192021222324
  1. using System;
  2. using Newtonsoft.Json;
  3. namespace InABox.Logikal
  4. {
  5. public abstract class LogikalRequest : LogikalObject
  6. {
  7. public static LogikalRequest FromMessage(LogikalMessage message)
  8. {
  9. if (message.Method == LogikalMethod.Connect)
  10. return JsonConvert.DeserializeObject<LogikalConnectRequest>(message.Payload);
  11. if (message.Method == LogikalMethod.Login)
  12. return JsonConvert.DeserializeObject<LogikalLoginRequest>(message.Payload);
  13. if (message.Method == LogikalMethod.Logout)
  14. return JsonConvert.DeserializeObject<LogikalLogoutRequest>(message.Payload);
  15. if (message.Method == LogikalMethod.Disconnect)
  16. return JsonConvert.DeserializeObject<LogikalDisconnectRequest>(message.Payload);
  17. throw new Exception($"Invalid Message Method: {message.Method}: {message.Payload}");
  18. }
  19. }
  20. }