public DeserializableCommand(Client.Message message)
{
if (message == null)
{
throw new ArgumentNullException("message");
}
Debug.Assert(
!string.IsNullOrEmpty(message.LockToken),
"message.LockToken is a null reference or empty string.");
_lockToken = message.LockToken;
byte[] messageBytes = message.GetBytes(); // this needs to be saved if needed later, because it can only be read once from the original Message
string jsonData = Encoding.UTF8.GetString(messageBytes);
_commandHistory = JsonConvert.DeserializeObject<CommandHistory>(jsonData);
}