public TelnetProtocolTranslator(
     IHTMLConnection socketConnection,
     IClientRepository clientRepository,
     IMessageHandlerCache messageHandlerCache
     )
     : base(GetMessageMap())
 {
     this.messageHandlerCache = messageHandlerCache;
     this.socketConnection = socketConnection;
     this.clientRepository = clientRepository;
 }
        public static TelnetProtocolTranslator FindTranslatorObject(
            IMessageHandlerCache cache,
            Message message,
            Func<MessageHandler> messageHandlerFactory
            )
        {
            var messageHandler = cache[message.clientId];
            if (messageHandler == null)
            {
                messageHandler = messageHandlerFactory();
                cache[message.clientId] = messageHandler;
            }

            return cache[message.clientId] as TelnetProtocolTranslator;
        }