public Message Create(byte messageNumber)
{
if (messageNumber > HighestMessageNumber)
{
throw CreateMessageTypeNotSupportedException(messageNumber);
}
var enabledMessageMetadata = _enabledMessagesByNumber[messageNumber];
if (enabledMessageMetadata == null)
{
var definedMessageMetadata = AllMessages.FirstOrDefault(p => p.Number == messageNumber);
if (definedMessageMetadata == null)
{
throw CreateMessageTypeNotSupportedException(messageNumber);
}
throw new SshException(string.Format(CultureInfo.InvariantCulture, "Message type {0} is not valid in the current context.", messageNumber));
}
return enabledMessageMetadata.Create();
}