public void Send(ISCMessage message)
        {
            var writer = new BigEndianWriter();

            writer.WriteInt((int)message.RequestId);
            writer.WriteInt((int)message.MessageId);
            ConsoleLogger.Debug("[ISC] Sent : " + message.ToString().Split('.').Last());
            message.Serialize(writer);
            if (m_client.Runing)
            {
                m_client.Send(writer.Data);
            }
        }
        public static ISCMessage BuildMessage(uint id, IDataReader reader)
        {
            if (!m_messages.ContainsKey(id))
            {
                throw new MessageNotFoundException(string.Format("NetworkMessage <id:{0}> doesn't exist", id));
            }

            ISCMessage message = m_constructors[id]();

            if (message == null)
            {
                throw new MessageNotFoundException(string.Format("Constructors[{0}] (delegate {1}) does not exist", id, m_messages[id]));
            }

            message.Deserialize(reader);

            return(message);
        }