1234567891011121314151617181920212223242526272829303132333435363738 |
- using System;
- using Newtonsoft.Json;
- namespace InABox.Logikal
- {
- public abstract class LogikalResponse : LogikalObject
- {
- public LogikalStatus Status { get; set; } = LogikalStatus.Unknown;
-
- public static LogikalResponse FromMessage(LogikalMessage message)
- {
- if (message.Method == LogikalMethod.Connect)
- return JsonConvert.DeserializeObject<LogikalConnectResponse>(message.Payload);
- if (message.Method == LogikalMethod.Login)
- return JsonConvert.DeserializeObject<LogikalLoginResponse>(message.Payload);
- if (message.Method == LogikalMethod.Logout)
- return JsonConvert.DeserializeObject<LogikalLogoutResponse>(message.Payload);
- if (message.Method == LogikalMethod.Disconnect)
- return JsonConvert.DeserializeObject<LogikalDisconnectResponse>(message.Payload);
- if (message.Method == LogikalMethod.Error)
- return JsonConvert.DeserializeObject<LogikalErrorResponse>(message.Payload);
- throw new Exception("Unknown Message ID");
- }
-
- }
- public class LogikalErrorResponse : LogikalResponse
- {
- public override LogikalMethod Method() => LogikalMethod.Error;
-
- public String Message { get; set; }
- public LogikalErrorResponse()
- {
- Status = LogikalStatus.Error;
- }
- }
- }
|