示例#1
0
        /// <summary>
        /// HttpHandler의 작업의 메인 메소드입니다. 재정의 하여 원하는 기능을 수행하되, 제일 첫번째에 부모 클래스의 메소들를 호출해주어야 합니다.
        /// </summary>
        /// <param name="context"></param>
        protected override void DoProcessRequest(HttpContext context)
        {
            context.ShouldNotBeNull("context");

            if (IsDebugEnabled)
            {
                log.Debug(@"요청정보를 받아 처리를 시작합니다...");
            }

            try {
                var productName = context.Request[HttpParams.Product].AsText();

                if (IsDebugEnabled)
                {
                    log.Debug("ProductName=[{0}]에 대한 요청 처리를 접수했습니다...", productName);
                }

                var adapter       = XmlDataTool.ResolveXmlDataManagerAdapter(productName);
                var responseBytes = adapter.Execute(context.Request.InputStream.ToBytes());

                context.WriteResponse(responseBytes);

                if (IsDebugEnabled)
                {
                    log.Debug("ProductName=[{0}]에 대한 요청 처리를 완료하였습니다!!!", productName);
                }
            }
            catch (Exception ex) {
                if (log.IsErrorEnabled)
                {
                    log.ErrorException("요청을 처리하는 동안 예외가 발생했습니다.", ex);
                }
            }
        }
示例#2
0
        public override XdsResponseDocument ExecuteXmlDataManager(XdsRequestDocument requestDocument)
        {
            using (var xdsService = new XmlDataService()) {
                var adapter = XmlDataTool.ResolveXmlDataManagerAdapter(ProductName);

                var tcs = new TaskCompletionSource <byte[]>(null);

                ExecuteCompletedEventHandler handler = null;
                handler =
                    (s, e) => EventAsyncPattern.HandleCompletion(tcs, e, () => e.Result, () => xdsService.ExecuteCompleted -= handler);
                xdsService.ExecuteCompleted += handler;

                try {
                    var requestBytes = adapter.RequestSerializer.Serialize(requestDocument);
                    xdsService.ExecuteAsync(requestBytes, ProductName, false, tcs);
                }
                catch (Exception ex) {
                    xdsService.ExecuteCompleted -= handler;
                    tcs.TrySetException(ex);
                }


                tcs.Task.Wait();
                Assert.IsTrue(tcs.Task.IsCompleted);

                return(adapter.ResponseSerializer.Deserialize(tcs.Task.Result));
            }
        }
示例#3
0
        public void ResolveXmlDataManagerTest()
        {
            var manager = XmlDataTool.ResolveXmlDataManager();

            manager.Should().Not.Be.Null();
            manager.Ado.Should().Not.Be.Null();
            manager.Ado.QueryProvider.Should().Not.Be.Null();
        }
示例#4
0
        public override XdsResponseDocument ExecuteXmlDataManager(XdsRequestDocument requestDocument)
        {
            using (var xmlDataService = new XmlDataService()) {
                var adapter       = XmlDataTool.ResolveXmlDataManagerAdapter(ProductName);
                var requestBytes  = adapter.RequestSerializer.Serialize(requestDocument);
                var responseBytes = xmlDataService.Execute(requestBytes, ProductName, false);

                return(adapter.ResponseSerializer.Deserialize(responseBytes));
            }
        }
        /// <summary>
        /// 해당 제품 DB에 대해 요청정보를 처리한 후 결과를 반환합니다.
        /// </summary>
        /// <param name="xdsRequest"></param>
        /// <param name="productName"></param>
        /// <returns></returns>
        public static XdsResponseDocument Execute(XdsRequestDocument xdsRequest, string productName)
        {
            xdsRequest.ShouldNotBeNull("xdsRequest");

            if (productName.IsWhiteSpace())
            {
                productName = AdoTool.DefaultDatabaseName;
            }

            CheckProductExists(productName);
            return(XmlDataTool.Execute(xdsRequest, productName));
        }
示例#6
0
        public override XdsResponseDocument ExecuteXmlDataManager(XdsRequestDocument requestDocument)
        {
            var adapter      = XmlDataTool.ResolveXmlDataManagerAdapter(ProductName);
            var requestBytes = adapter.RequestSerializer.Serialize(requestDocument);

            using (var xdsProxy = new XmlDataServiceClient()) {
                var ar = xdsProxy.BeginExecute(requestBytes, ProductName, false, null, null);
                Thread.Sleep(1);
                var responseBytes = xdsProxy.EndExecute(ar);
                return(adapter.ResponseSerializer.Deserialize(responseBytes));
            }
        }
示例#7
0
        public void ResolveXmlDataManagerAdapterTest()
        {
            var adapter = XmlDataTool.ResolveXmlDataManagerAdapter();

            adapter.Should().Not.Be.Null();
            adapter.XmlDataManager.Should().Not.Be.Null();
            adapter.XmlDataManager.Ado.Should().Not.Be.Null();
            adapter.XmlDataManager.Ado.QueryProvider.Should().Not.Be.Null();

            adapter.RequestSerializer.Should().Not.Be.Null();
            adapter.ResponseSerializer.Should().Not.Be.Null();
        }
        public byte[] ExecuteSecurity(byte[] requestBytes, string productName, bool compress)
        {
            if (IsDebugEnabled)
            {
                log.Debug("요청을 처리합니다... productName=[{0}], compress=[{1}]", productName, compress);
            }

            try {
                var adapter = XmlDataTool.ResolveXmlDataManagerAdapter(productName);
                return(adapter.Execute(requestBytes));
            }
            catch (Exception ex) {
                if (log.IsErrorEnabled)
                {
                    log.ErrorException("요청을 처리하는 동안 예외가 발생했습니다.", ex);
                }
            }
            return(new byte[0]);
        }
示例#9
0
 public virtual ISerializer <XdsResponseDocument> GetResponseSerializer()
 {
     return(XmlDataTool.ResolveResponseSerializer());
 }
示例#10
0
 public virtual IXmlDataManager GetXmlDataManager()
 {
     return(XmlDataTool.ResolveXmlDataManager());
 }
示例#11
0
 public virtual XdsResponseDocument ExecuteXmlDataManager(XdsRequestDocument requestDocument)
 {
     return(XmlDataTool.ResolveXmlDataManager().Execute(requestDocument));
 }