public WADOResponse Process(WADORequestTypeHandlerContext context)
        {
            //Validate(context.HttpContext.Request);

            ObjectStreamingHandlerFactory factory = new ObjectStreamingHandlerFactory();
            IObjectStreamingHandler       handler = factory.CreateHandler(context.HttpContext.Request);

            return(handler.Process(context));
        }
        private static void HandleRequest(HttpListenerContext context)
        {
            WADORequestProcessorStatistics statistics = new WADORequestProcessorStatistics("Image Streaming");

            statistics.TotalProcessTime.Start();
            LogRequest(context);

            using (WADORequestTypeHandlerManager handlerManager = new WADORequestTypeHandlerManager())
            {
                string requestType = context.Request.QueryString["requestType"];
                IWADORequestTypeHandler typeHandler = handlerManager.GetHandler(requestType);

                WADORequestTypeHandlerContext ctx = new WADORequestTypeHandlerContext
                {
                    HttpContext = context,
                    ServerAE    = UriHelper.GetServerAE(context)
                };

                using (WADOResponse response = typeHandler.Process(ctx))
                {
                    if (response != null)
                    {
                        statistics.TransmissionSpeed.Start();
                        SendWADOResponse(response, context);
                        statistics.TransmissionSpeed.End();
                        if (response.Output != null)
                        {
                            statistics.TransmissionSpeed.SetData(response.Output.Length);
                        }
                    }
                }
            }

            statistics.TotalProcessTime.End();
            StatisticsLogger.Log(LogLevel.Debug, statistics);
        }