예제 #1
0
        /// <summary>
        /// The handle data request.
        /// </summary>
        /// <param name="request">
        /// The request.
        /// </param>
        /// <param name="baseDataFormat">
        /// The base data format.
        /// </param>
        /// <returns>
        /// The <see cref="Message"/>.
        /// </returns>
        private Message HandleDataRequest(Message request, BaseDataFormatEnumType baseDataFormat)
        {
            var dataFormat = BaseDataFormat.GetFromEnum(baseDataFormat);
            var response   = dataFormat.GetSoapOperationResponse(SdmxSchemaEnumType.VersionTwoPointOne).ToString();
            var controller = this._controllerBuilder.BuildDataV21Advanced(HttpContext.Current.User as DataflowPrincipal, dataFormat);

            return(HandleRequest(request, controller, new XmlQualifiedName(response, Ns), dataFormat.GetSoapOperation(SdmxSchemaEnumType.VersionTwoPointOne)));
        }
예제 #2
0
        /// <summary>
        /// The handle data request.
        /// </summary>
        /// <param name="request">
        /// The request.
        /// </param>
        /// <param name="baseDataFormat">
        /// The base data format.
        /// </param>
        /// <returns>
        /// The <see cref="Message"/>.
        /// </returns>
        private Message HandleDataRequest(Message request, BaseDataFormatEnumType baseDataFormat)
        {
            var dataFormat = BaseDataFormat.GetFromEnum(baseDataFormat);
            var operation  = dataFormat.GetSoapOperation(SdmxSchemaEnumType.VersionTwo);

            try
            {
                var response   = operation.GetResponse().ToString();
                var controller = this._controllerBuilder.BuildDataV20FromMessage(HttpContext.Current.User as DataflowPrincipal, dataFormat);
                return(HandleRequest(request, controller, new XmlQualifiedName(response, this.Ns), operation));
            }
            catch (FaultException <SdmxFault> )
            {
                throw;
            }
            catch (Exception e)
            {
                _log.Error(operation.ToString(), e);
                throw _messageFaultBuilder.BuildException(e, operation.ToString());
            }
        }
예제 #3
0
        /// <summary>
        /// Convert <see cref="BaseDataFormatEnumType"/> field to lower
        /// </summary>
        /// <param name="type">
        /// The  <see cref="BaseDataFormatEnumType"/> field
        /// </param>
        /// <returns>
        /// The  <see cref="BaseDataFormatEnumType"/> field as string
        /// </returns>
        private static string GetDataFormat(BaseDataFormatEnumType type)
        {
            switch (type)
            {
                case BaseDataFormatEnumType.Compact:
                    return "compact";
                case BaseDataFormatEnumType.CrossSectional:
                    return "cross";
            }

            return null;
        }
        /// <summary>
        /// The handle data request.
        /// </summary>
        /// <param name="request">
        /// The request.
        /// </param>
        /// <param name="baseDataFormat">
        /// The base data format.
        /// </param>
        /// <returns>
        /// The <see cref="Message"/>.
        /// </returns>
        private Message HandleDataRequest(Message request, BaseDataFormatEnumType baseDataFormat)
        {
            var dataFormat = BaseDataFormat.GetFromEnum(baseDataFormat);
            SoapOperation soapOperation = dataFormat.GetSoapOperation(SdmxSchemaEnumType.VersionTwoPointOne);
            try
            {
                var controller = this._dataRequestController.ParseRequest(request, dataFormat.GetDataType(SdmxSchemaEnumType.VersionTwoPointOne));

                return this.WriteResponse(soapOperation, controller);
            }
            catch (Exception e)
            {
                var response = dataFormat.GetSoapOperationResponse(SdmxSchemaEnumType.VersionTwoPointOne).ToString();
                XmlQualifiedName xmlQualifiedName = new XmlQualifiedName(response, Ns);
                _log.Error(xmlQualifiedName, e);

                throw _messageFaultBuilder.BuildException(e, soapOperation.ToString());
            }
        }
예제 #5
0
 /// <summary>
 /// The handle data request.
 /// </summary>
 /// <param name="request">
 /// The request.
 /// </param>
 /// <param name="baseDataFormat">
 /// The base data format.
 /// </param>
 /// <returns>
 /// The <see cref="Message"/>.
 /// </returns>
 private Message HandleDataRequest(Message request, BaseDataFormatEnumType baseDataFormat)
 {
     var dataFormat = BaseDataFormat.GetFromEnum(baseDataFormat);
     var response = dataFormat.GetSoapOperationResponse(SdmxSchemaEnumType.VersionTwoPointOne).ToString();
     var controller = this._controllerBuilder.BuildDataV21Advanced(HttpContext.Current.User as DataflowPrincipal, dataFormat);
     return HandleRequest(request, controller, new XmlQualifiedName(response, Ns), dataFormat.GetSoapOperation(SdmxSchemaEnumType.VersionTwoPointOne));
 }
        /// <summary>
        /// The method that handle the processing of the SDMX query and orchestrate the
        /// calls to different building blocks.
        /// </summary>
        /// <param name="input">The XML containing the query bean</param>
        /// <param name="soapOperation">The SOAP operation.</param>
        /// <param name="baseDataFormat">The base data format.</param>
        /// <returns>The queried data in specified format</returns>
        private XmlStreamWrapper HandleDataRequest(XmlNode input, SoapOperation soapOperation, BaseDataFormatEnumType baseDataFormat)
        {
            _logger.DebugFormat(CultureInfo.InvariantCulture, "Received request for {0} for endpoint {1}", soapOperation, this.Endpoint);
            IStreamController<XmlWriter> streamController = _dataRequestController.ParseRequest(input, baseDataFormat.GetDataType(SdmxSchemaEnumType.VersionTwo));

            return new XmlStreamWrapper(streamController, soapOperation);
        }
 /// <summary>
 /// The handle data request.
 /// </summary>
 /// <param name="request">
 /// The request.
 /// </param>
 /// <param name="baseDataFormat">
 /// The base data format.
 /// </param>
 /// <returns>
 /// The <see cref="Message"/>.
 /// </returns>
 private Message HandleDataRequest(Message request, BaseDataFormatEnumType baseDataFormat)
 {
     var dataFormat = BaseDataFormat.GetFromEnum(baseDataFormat);
     var soapOperation = dataFormat.GetSoapOperation(SdmxSchemaEnumType.VersionTwo);
     try
     {
         var streamController = this._dataRequestController.ParseRequest(request, dataFormat.GetDataType(SdmxSchemaEnumType.VersionTwo));
         return this.WriteResponse(soapOperation, streamController);
     }
     catch (FaultException<SdmxFault>)
     {
         throw;
     }
     catch (Exception e)
     {
         _log.Error(soapOperation.ToString(), e);
         throw _messageFaultBuilder.BuildException(e, soapOperation.ToString());
     }
 }
예제 #8
0
 /// <summary>
 /// The handle data request.
 /// </summary>
 /// <param name="request">
 /// The request.
 /// </param>
 /// <param name="baseDataFormat">
 /// The base data format.
 /// </param>
 /// <returns>
 /// The <see cref="Message"/>.
 /// </returns>
 private Message HandleDataRequest(Message request, BaseDataFormatEnumType baseDataFormat)
 {
     var dataFormat = BaseDataFormat.GetFromEnum(baseDataFormat);
     var operation = dataFormat.GetSoapOperation(SdmxSchemaEnumType.VersionTwo);
     try
     {
         var response = operation.GetResponse().ToString();
         var controller = this._controllerBuilder.BuildDataV20FromMessage(HttpContext.Current.User as DataflowPrincipal, dataFormat);
         return HandleRequest(request, controller, new XmlQualifiedName(response, this.Ns), operation);
     }
     catch (FaultException<SdmxFault>)
     {
         throw;
     }
     catch (Exception e)
     {
         _log.Error(operation.ToString(), e);
         throw _messageFaultBuilder.BuildException(e, operation.ToString());
     }
 }