private void WriteGenericException(Exception exception)
        {
            IExceptionFormatter formatter;
            try
            {
                formatter = _container.Resolve<IExceptionFormatter>();
            }
            catch
            {
                formatter = new ExceptionFormatter();
            }

            IUniversalResponse universalResponse = null;
            switch (_kind)
            {
                case ContextKind.Web:
                    universalResponse = new UniversalResponse(HttpWebContext.Response);
                    break;
                case ContextKind.Net:
                    universalResponse = new UniversalResponse(HttpListenerContext.Response);
                    break;
            }
            formatter.WriteHtmlException(exception, universalResponse);
        }
        public void EngineCallback(IRemoraOperation operation)
        {
            if (_logger.IsDebugEnabled)
                _logger.DebugFormat("Async process ended for request coming from {0}. Writing results...", IncomingUri);

            IUniversalResponse universalResponse = null;

            switch (_kind)
            {
                case ContextKind.Web:
                    universalResponse = new UniversalResponse(HttpWebContext.Response);
                    break;
                case ContextKind.Net:
                    universalResponse = new UniversalResponse(HttpListenerContext.Response);
                    break;
            }

            var writer = _container.Resolve<IResponseWriter>();
            writer.Write(operation, universalResponse);

            IsCompleted = true;
            _callback(this);
        }