void ListenerOnConnectionEstablished(object sender, ConnectionEstablishedEventArgs connectionEstablishedEventArgs)
        {
            // TODO: Abstract server selection
            var selectedServer = _servers.First();

            using (var clientStream = connectionEstablishedEventArgs.Client.GetStream())
            using (var client = HttpProxyConfiguration.HttpClientFactory())
            using (var requestMessage = _requestMessageBuilder.BuildRequestFromRequestStream(selectedServer, clientStream))
            {
                var responseMessage = client.SendAsync(requestMessage).Result;
                using (responseMessage)
                    _responseStreamWriter.WriteHttpResponseToClientStream(responseMessage, clientStream);
            }
        }
 protected virtual void OnConnectionEstablished(ConnectionEstablishedEventArgs e)
 {
     if (ConnectionEstablished != null)
         ConnectionEstablished(this, e);
 }