/// <summary> /// Gets the SOAP operation. /// </summary> /// <param name="dataFormat"> /// The data format. /// </param> /// <param name="sdmxSchema"> /// The SDMX schema. /// </param> /// <returns> /// The <see cref="SoapOperation"/>. /// </returns> public static SoapOperation GetSoapOperation(this BaseDataFormat dataFormat, SdmxSchemaEnumType sdmxSchema) { switch (sdmxSchema) { case SdmxSchemaEnumType.Edi: case SdmxSchemaEnumType.Ecv: case SdmxSchemaEnumType.Csv: case SdmxSchemaEnumType.Json: return(SoapOperation.Null); } switch (dataFormat.EnumType) { case BaseDataFormatEnumType.Generic: return(SoapOperation.GetGenericData); case BaseDataFormatEnumType.Compact: return(sdmxSchema == SdmxSchemaEnumType.VersionTwoPointOne ? SoapOperation.GetStructureSpecificData : SoapOperation.GetCompactData); case BaseDataFormatEnumType.Utility: return(sdmxSchema == SdmxSchemaEnumType.VersionTwoPointOne ? SoapOperation.Null : SoapOperation.GetUtilityData); case BaseDataFormatEnumType.CrossSectional: return(sdmxSchema == SdmxSchemaEnumType.VersionTwoPointOne ? SoapOperation.Null : SoapOperation.GetCrossSectionalData); } return(SoapOperation.Null); }
/// <summary> /// Gets the simple data controller for SDMX v2.0 SOAP or REST. /// </summary> /// <param name="dataFormat"> /// The compact data format. /// </param> /// <param name="sdmxSchema"> /// The SDMX schema V20. /// </param> /// <param name="principal"> /// The principal. /// </param> /// <returns> /// The <see cref="IController{XmlNode,XmlWriter}"/>. /// </returns> private SimpleDataController <XmlWriter> GetSimpleDataController(BaseDataFormat dataFormat, SdmxSchema sdmxSchema, DataflowPrincipal principal) { DataRequestValidator dataRequestValidator; IResponseGenerator <XmlWriter, IDataQuery> simpleDataResponseGenerator; if (dataFormat.EnumType == BaseDataFormatEnumType.CrossSectional) { if (sdmxSchema.EnumType != SdmxSchemaEnumType.VersionTwo) { throw new SdmxSemmanticException("Impossible request. Requested CrossSectional for SDMX v2.1."); } var dataWriterBuilder = new CrossDataWriterBuilder(); simpleDataResponseGenerator = new SimpleCrossDataResponseGenerator <XmlWriter>(this._retrievalWithCrossWriter, dataWriterBuilder); dataRequestValidator = new DataRequestValidator(_crossSectional, _sdmxSchemaV20); } else { var dataWriterBuilder = new DataWriterBuilder(dataFormat, sdmxSchema); simpleDataResponseGenerator = new SimpleDataResponseGenerator <XmlWriter>(this.GetDataRetrievalWithWriter(sdmxSchema.EnumType), dataWriterBuilder); dataRequestValidator = new DataRequestValidator(dataFormat, sdmxSchema); } var dataController = new DataController <IDataQuery, XmlWriter>(simpleDataResponseGenerator); IDataflowLogManager dataflowLogManager = new DataflowLogManager(dataFormat); var requestLogDataController = new RequestLogDataController <IDataQuery, XmlWriter>(dataController, dataflowLogManager); var validatingDataController = new ValidatingDataController <IDataQuery, XmlWriter>(requestLogDataController, dataRequestValidator); var authDataController = new AuthDataController <IDataQuery, XmlWriter>(validatingDataController, principal); var simpleDataController = new SimpleDataController <XmlWriter>(authDataController, this._mappingStoreSdmxObjectRetrievalManager); return(simpleDataController); }
/// <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> /// Initializes static members of the <see cref="ControllerBuilder" /> class. /// </summary> static ControllerBuilder() { _log = LogManager.GetLogger(typeof(ControllerBuilder)); _compactDataFormat = BaseDataFormat.GetFromEnum(BaseDataFormatEnumType.Compact); _genericDataFormat = BaseDataFormat.GetFromEnum(BaseDataFormatEnumType.Generic); _crossSectional = BaseDataFormat.GetFromEnum(BaseDataFormatEnumType.CrossSectional); _sdmxSchemaV20 = SdmxSchema.GetFromEnum(SdmxSchemaEnumType.VersionTwo); _sdmxSchemaV21 = SdmxSchema.GetFromEnum(SdmxSchemaEnumType.VersionTwoPointOne); }
/// <summary> /// Initializes a new instance of the <see cref="DataflowLogManager" /> class. /// </summary> /// <param name="dataFormat">The data format.</param> public DataflowLogManager(BaseDataFormat dataFormat) { if (dataFormat == null) { throw new ArgumentNullException("dataFormat"); } this._dataFormat = dataFormat; this._separator = ConfigurationManager.AppSettings["log.df.file.separator"] ?? ";"; }
/// <summary> /// Initializes a new instance of the <see cref="DataflowLogManager" /> class. /// </summary> /// <param name="dataFormat">The data format.</param> public DataflowLogManager(BaseDataFormat dataFormat) { if (dataFormat == null) { throw new ArgumentNullException("dataFormat"); } this._dataFormat = dataFormat; this._separator = ConfigurationManager.AppSettings["log.df.file.separator"] ?? ";"; }
/// <summary> /// Gets the Advanced (SDMX v2.1 SOAP) data controller. /// </summary> /// <param name="dataFormat"> /// The compact data format. /// </param> /// <param name="sdmxSchema"> /// The SDMX schema V20. /// </param> /// <param name="principal"> /// The principal. /// </param> /// <returns> /// The <see cref="IController{XmlNode,XmlWriter}"/>. /// </returns> private IController <Message, XmlWriter> GetAdvancedDataController(BaseDataFormat dataFormat, SdmxSchema sdmxSchema, DataflowPrincipal principal) { var dataWriterBuilder = new DataWriterBuilder(dataFormat, sdmxSchema); var dataResponseGenerator = new AdvancedDataResponseGenerator <XmlWriter>(this._advancedRetrievalWithWriter, dataWriterBuilder); var operation = dataFormat.GetSoapOperation(SdmxSchemaEnumType.VersionTwoPointOne); var dataController = new DataController <IComplexDataQuery, XmlWriter>(dataResponseGenerator); IDataflowLogManager dataflowLogManager = new DataflowLogManager(dataFormat); var requestLogDataController = new RequestLogDataController <IComplexDataQuery, XmlWriter>(dataController, dataflowLogManager); var validatingDataController = new ValidatingDataController <IComplexDataQuery, XmlWriter>(requestLogDataController, new DataRequestValidator(dataFormat, sdmxSchema)); var authDataController = new AuthDataController <IComplexDataQuery, XmlWriter>(validatingDataController, principal); return(new AdvancedDataController <XmlWriter>(operation, authDataController, this._mappingStoreSdmxObjectRetrievalManager)); }
/// <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()); } }
/// <summary> /// The process request. /// </summary> /// <param name="flowRef"> /// The flow ref. /// </param> /// <param name="key"> /// The key. /// </param> /// <param name="providerRef"> /// The provider ref. /// </param> /// <param name="ctx"> /// The ctx. /// </param> /// <returns> /// The <see cref="Message"/>. /// </returns> /// <exception cref="WebFaultException{T}"> /// </exception> private Message ProcessRequest(string flowRef, string key, string providerRef, WebOperationContext ctx) { var requestAccept = ctx.IncomingRequest.Accept; Logger.Info("Got request Content type= " + requestAccept); IList <ContentType> acceptHeaderElements = ctx.IncomingRequest.GetAcceptHeaderElements(); var defaultMediaType = DataMediaType.GetFromEnum(DataMediaEnumType.GenericData).MediaType; var contentType = RestUtils.GetContentType(ctx, h => DataMediaType.GetTypeFromName(h.MediaType) != null, defaultMediaType); string requestedVersion = HeaderUtils.GetVersionFromAccept(acceptHeaderElements, contentType.MediaType); var datamediaType = DataMediaType.GetTypeFromName(contentType.MediaType); var selectedMediaTypeWithVersion = datamediaType.GetMediaTypeVersion(requestedVersion); if (selectedMediaTypeWithVersion == null) { Logger.Error("Cannot serve content type: " + requestAccept); throw new WebFaultException <string>("Cannot serve content type: " + requestAccept, HttpStatusCode.NotAcceptable); } Logger.Debug("Select mediatype with version if required: " + selectedMediaTypeWithVersion); BaseDataFormat format = DataMediaType.GetTypeFromName(selectedMediaTypeWithVersion.MediaType).Format; SdmxSchema version = GetVersionFromMediaType(selectedMediaTypeWithVersion, format); Logger.Info("Selected representation info for the controller: format =" + format + " , smdx_schema=" + version); IRestDataQuery query = this.BuildQueryBean(flowRef, key, providerRef, ctx.IncomingRequest.UriTemplateMatch.QueryParameters); HttpContext context = HttpContext.Current; var controller = this._controllerBuilder.BuildDataRest(context.User as DataflowPrincipal, format, version); var streamController = controller.ParseRequest(query); var charSetEncoding = RestUtils.GetCharSetEncoding(contentType); var responseContentType = RestUtils.GetContentType(contentType, selectedMediaTypeWithVersion); selectedMediaTypeWithVersion.CharSet = charSetEncoding.WebName; return(ctx.CreateStreamResponse(stream => RestUtils.StreamXml(version, stream, streamController, charSetEncoding), responseContentType)); }
/// <summary> /// Gets the simple data controller for SDMX v2.0 SOAP or REST. /// </summary> /// <param name="dataFormat"> /// The compact data format. /// </param> /// <param name="sdmxSchema"> /// The SDMX schema V20. /// </param> /// <param name="principal"> /// The principal. /// </param> /// <returns> /// The <see cref="IController{XmlNode,XmlWriter}"/>. /// </returns> private SimpleDataController<XmlWriter> GetSimpleDataController(BaseDataFormat dataFormat, SdmxSchema sdmxSchema, DataflowPrincipal principal) { DataRequestValidator dataRequestValidator; IResponseGenerator<XmlWriter, IDataQuery> simpleDataResponseGenerator; if (dataFormat.EnumType == BaseDataFormatEnumType.CrossSectional) { if (sdmxSchema.EnumType != SdmxSchemaEnumType.VersionTwo) { throw new SdmxSemmanticException("Impossible request. Requested CrossSectional for SDMX v2.1."); } var dataWriterBuilder = new CrossDataWriterBuilder(); simpleDataResponseGenerator = new SimpleCrossDataResponseGenerator<XmlWriter>(this._retrievalWithCrossWriter, dataWriterBuilder); dataRequestValidator = new DataRequestValidator(_crossSectional, _sdmxSchemaV20); } else { var dataWriterBuilder = new DataWriterBuilder(dataFormat, sdmxSchema); simpleDataResponseGenerator = new SimpleDataResponseGenerator<XmlWriter>(this.GetDataRetrievalWithWriter(sdmxSchema.EnumType), dataWriterBuilder); dataRequestValidator = new DataRequestValidator(dataFormat, sdmxSchema); } var dataController = new DataController<IDataQuery, XmlWriter>(simpleDataResponseGenerator); IDataflowLogManager dataflowLogManager = new DataflowLogManager(dataFormat); var requestLogDataController = new RequestLogDataController<IDataQuery, XmlWriter>(dataController, dataflowLogManager); var validatingDataController = new ValidatingDataController<IDataQuery, XmlWriter>(requestLogDataController, dataRequestValidator); var authDataController = new AuthDataController<IDataQuery, XmlWriter>(validatingDataController, principal); var simpleDataController = new SimpleDataController<XmlWriter>(authDataController, this._mappingStoreSdmxObjectRetrievalManager); return simpleDataController; }
/// <summary> /// Builds the generic data controller for SDMX V21. /// </summary> /// <param name="principal"> /// The principal. /// </param> /// <param name="dataFormat"> /// The data format. /// </param> /// <returns> /// The <see cref="IController{XmlNode,XmlWriter}"/>. /// </returns> public IController<Message, XmlWriter> BuildDataV21Advanced(DataflowPrincipal principal, BaseDataFormat dataFormat) { var sdmxSchema = _sdmxSchemaV21; return this.GetAdvancedDataController(dataFormat, sdmxSchema, principal); }
/// <summary> /// Builds the generic data controller for SDMX V21. /// </summary> /// <param name="principal"> /// The principal. /// </param> /// <param name="baseDataFormat"> /// The base data format. /// </param> /// <param name="sdmxSchema"> /// The SDMX schema. /// </param> /// <returns> /// The <see cref="IController{XmlNode,XmlWriter}"/>. /// </returns> /// <exception cref="SdmxSemmanticException"> /// Impossible request. Requested CrossSectional for SDMX v2.1. /// </exception> public IController<IRestDataQuery, XmlWriter> BuildDataRest(DataflowPrincipal principal, BaseDataFormat baseDataFormat, SdmxSchema sdmxSchema) { return this.GetSimpleDataController(baseDataFormat, sdmxSchema, principal); }
//private static readonly BaseDataFormat _jsonDataFormat; /// <summary> /// Builds the json data controller for SDMX V21. /// </summary> /// <param name="principal"> /// The principal. /// </param> /// <param name="baseDataFormat"> /// The base data format. /// </param> /// <param name="sdmxSchema"> /// The SDMX schema. /// </param> /// <returns> /// The <see cref="IController{XmlNode,XmlWriter}"/>. /// </returns> /// <exception cref="SdmxSemmanticException"> /// Impossible request. Requested CrossSectional for SDMX v2.1. /// </exception> public IController<IRestDataQuery, Newtonsoft.Json.JsonTextWriter> BuildJsonDataRest(DataflowPrincipal principal, BaseDataFormat baseDataFormat, SdmxSchema sdmxSchema) { return this.GetSdmxJsonDataController(baseDataFormat, sdmxSchema, principal); }
/// <summary> /// Initializes a new instance of the <see cref="DataMediaType"/> class. /// </summary> /// <param name="enumType"> /// The enum type. /// </param> /// <param name="mediaTypeName"> /// The media type name. /// </param> /// <param name="format"> /// The format. /// </param> private DataMediaType(DataMediaEnumType enumType, string mediaTypeName, BaseDataFormat format) : base(enumType) { this._mediaTypeName = mediaTypeName; this._format = format; }
public IController<Message, DsplTextWriter> BuildDsplDataFromMessage(DataflowPrincipal principal, BaseDataFormat baseDataFormat) { return this.GetDsplDataController(principal); }
/// <summary> /// Builds the DSPL data controller for SDMX V21. /// </summary> /// <param name="principal"> /// The principal. /// </param> /// <param name="baseDataFormat"> /// The base data format. /// </param> /// <param name="sdmxSchema"> /// The SDMX schema. /// </param> /// <returns> /// The <see cref="IController{XmlNode,XmlWriter}"/>. /// </returns> /// <exception cref="SdmxSemmanticException"> /// Impossible request. Requested CrossSectional for SDMX v2.1. /// </exception> public IController<IRestDataQuery, DsplTextWriter> BuildDsplDataRest(DataflowPrincipal principal, BaseDataFormat baseDataFormat, SdmxSchema sdmxSchema) { DsplDataController<DsplTextWriter> dsplDataController; var dataWriterBuilder = new DsplDataWriterBuilder(baseDataFormat, sdmxSchema); var dsplDataResponseGenerator = new DsplDataResponseGenerator<DsplTextWriter>(this.GetDataRetrievalWithWriter(sdmxSchema.EnumType), dataWriterBuilder); dsplDataController = new DsplDataController<DsplTextWriter>(dsplDataResponseGenerator, new DataRequestValidator(baseDataFormat, sdmxSchema), principal); return dsplDataController; }
/// <summary> /// The get version from media type. /// </summary> /// <param name="selectedMediaTypeWithVersion"> /// The selected media type with version. /// </param> /// <param name="format"> /// The format. /// </param> /// <returns> /// The <see cref="SdmxSchema"/>. /// </returns> private static SdmxSchema GetVersionFromMediaType(ContentType selectedMediaTypeWithVersion, BaseDataFormat format) { SdmxSchema version = null; switch (format.EnumType) { case BaseDataFormatEnumType.Edi: version = SdmxSchema.GetFromEnum(SdmxSchemaEnumType.Edi); break; case BaseDataFormatEnumType.Csv: version = SdmxSchema.GetFromEnum(SdmxSchemaEnumType.Csv); break; default: version = RestUtils.GetVersionFromMediaType(selectedMediaTypeWithVersion); break; } return version; }
internal string InitializingFromDataBase() { _baseDataFormat = new DataBase(); return(_baseDataFormat.ExtractFromDb(_expression)); }
/// <summary> /// Gets the simple data controller for SDMX v2.0 SOAP or REST. /// </summary> /// <param name="dataFormat"> /// The compact data format. /// </param> /// <param name="sdmxSchema"> /// The SDMX schema V20. /// </param> /// <param name="principal"> /// The principal. /// </param> /// <returns> /// The <see cref="IController{XmlNode,XmlWriter}"/>. /// </returns> private SimpleDataController<XmlWriter> GetSimpleDataController(BaseDataFormat dataFormat, SdmxSchema sdmxSchema, DataflowPrincipal principal) { SimpleDataController<XmlWriter> simpleDataController; if (dataFormat.EnumType == BaseDataFormatEnumType.CrossSectional) { if (sdmxSchema.EnumType != SdmxSchemaEnumType.VersionTwo) { throw new SdmxSemmanticException("Impossible request. Requested CrossSectional for SDMX v2.1."); } var dataWriterBuilder = new CrossDataWriterBuilder(); var simpleDataResponseGenerator = new SimpleCrossDataResponseGenerator<XmlWriter>(this._retrievalWithCrossWriter, dataWriterBuilder); simpleDataController = new SimpleDataController<XmlWriter>(simpleDataResponseGenerator, new DataRequestValidator(_crossSectional, _sdmxSchemaV20), principal); } else { var dataWriterBuilder = new DataWriterBuilder(dataFormat, sdmxSchema); var simpleDataResponseGenerator = new SimpleDataResponseGenerator<XmlWriter>(this.GetDataRetrievalWithWriter(sdmxSchema.EnumType), dataWriterBuilder); simpleDataController = new SimpleDataController<XmlWriter>(simpleDataResponseGenerator, new DataRequestValidator(dataFormat, sdmxSchema), principal); } return simpleDataController; }
/// <summary> /// Builds the generic data controller for SDMX V21. /// </summary> /// <param name="principal"> /// The principal. /// </param> /// <param name="baseDataFormat"> /// The base data format. /// </param> /// <param name="sdmxSchema"> /// The SDMX schema. /// </param> /// <returns> /// The <see cref="IController{XmlNode,XmlWriter}"/>. /// </returns> /// <exception cref="SdmxSemmanticException"> /// Impossible request. Requested CrossSectional for SDMX v2.1. /// </exception> public IController <IRestDataQuery, XmlWriter> BuildDataRest(DataflowPrincipal principal, BaseDataFormat baseDataFormat, SdmxSchema sdmxSchema) { return(this.GetSimpleDataController(baseDataFormat, sdmxSchema, principal)); }
private SdmxJsonDataController<Newtonsoft.Json.JsonTextWriter> GetSdmxJsonDataController(BaseDataFormat dataFormat, SdmxSchema sdmxSchema, DataflowPrincipal principal) { SdmxJsonDataController<Newtonsoft.Json.JsonTextWriter> sdmxjsonDataController; var dataWriterBuilder = new SdmxJsonDataWriterBuilder(dataFormat, sdmxSchema); var sdmxjsonDataResponseGenerator = new SdmxJsonDataResponseGenerator<Newtonsoft.Json.JsonTextWriter>(this.SdmxJsonGetDataRetrievalWithWriter(), dataWriterBuilder); sdmxjsonDataController = new SdmxJsonDataController<Newtonsoft.Json.JsonTextWriter>(sdmxjsonDataResponseGenerator, new DataRequestValidator(dataFormat, sdmxSchema), principal); return sdmxjsonDataController; }
/// <summary> /// Builds the generic data controller for SDMX V21. /// </summary> /// <param name="principal"> /// The principal. /// </param> /// <param name="baseDataFormat"> /// The base data format. /// </param> /// <returns> /// The <see cref="IController{XElement,XmlWriter}"/>. /// </returns> /// <exception cref="SdmxSemmanticException"> /// Impossible request. Requested CrossSectional for SDMX v2.1. /// </exception> public IController <Message, XmlWriter> BuildDataV20FromMessage(DataflowPrincipal principal, BaseDataFormat baseDataFormat) { return(this.GetSimpleDataController(baseDataFormat, _sdmxSchemaV20, principal)); }
/// <summary> /// Builds the generic data controller for SDMX V21. /// </summary> /// <param name="principal"> /// The principal. /// </param> /// <param name="baseDataFormat"> /// The base data format. /// </param> /// <returns> /// The <see cref="IController{XElement,XmlWriter}"/>. /// </returns> /// <exception cref="SdmxSemmanticException"> /// Impossible request. Requested CrossSectional for SDMX v2.1. /// </exception> public IController<Message, XmlWriter> BuildDataV20FromMessage(DataflowPrincipal principal, BaseDataFormat baseDataFormat) { return this.GetSimpleDataController(baseDataFormat, _sdmxSchemaV20, principal); }
/// <summary> /// Builds the generic data controller for SDMX V21. /// </summary> /// <param name="principal"> /// The principal. /// </param> /// <param name="dataFormat"> /// The data format. /// </param> /// <returns> /// The <see cref="IController{XmlNode,XmlWriter}"/>. /// </returns> public IController <Message, XmlWriter> BuildDataV21Advanced(DataflowPrincipal principal, BaseDataFormat dataFormat) { var sdmxSchema = _sdmxSchemaV21; return(this.GetAdvancedDataController(dataFormat, sdmxSchema, principal)); }
/// <summary> /// Initializes a new instance of the <see cref="DataWriterBuilder"/> class. /// </summary> /// <param name="dataFormat"> /// The data Format. /// </param> /// <param name="sdmxSchema"> /// The sdmx Schema. /// </param> public DataWriterBuilder(BaseDataFormat dataFormat, SdmxSchema sdmxSchema) { this._dataFormat = dataFormat; this._sdmxSchema = sdmxSchema; }
/// <summary> /// Builds the CSV ziped data controller for SDMX V21. /// </summary> /// <param name="principal"> /// The principal. /// </param> /// <param name="baseDataFormat"> /// The base data format. /// </param> /// <param name="sdmxSchema"> /// The SDMX schema. /// </param> /// <returns> /// The <see cref="IController{XmlNode,XmlWriter}"/>. /// </returns> /// <exception cref="SdmxSemmanticException"> /// Impossible request. Requested CrossSectional for SDMX v2.1. /// </exception> public IController<IRestDataQuery, CsvZipTextWriter> BuildCsvZipDataRest(DataflowPrincipal principal, BaseDataFormat baseDataFormat, SdmxSchema sdmxSchema) { CsvZipDataController<CsvZipTextWriter> CsvZipDataController; var dataWriterBuilder = new CsvZipDataWriterBuilder(baseDataFormat, sdmxSchema); var CsvZipDataResponseGenerator = new CsvZipDataResponseGenerator<CsvZipTextWriter>(this.GetDataRetrievalWithWriter(sdmxSchema.EnumType), dataWriterBuilder); CsvZipDataController = new CsvZipDataController<CsvZipTextWriter>(CsvZipDataResponseGenerator, new DataRequestValidator(baseDataFormat, sdmxSchema), principal); return CsvZipDataController; }
/// <summary> /// Gets the SOAP operation response. /// </summary> /// <param name="dataFormat"> /// The data format. /// </param> /// <param name="sdmxSchema"> /// The SDMX schema. /// </param> /// <returns> /// The SOAP operation response. /// </returns> public static SoapOperationResponse GetSoapOperationResponse(this BaseDataFormat dataFormat, SdmxSchemaEnumType sdmxSchema) { return(dataFormat.GetSoapOperation(sdmxSchema).GetResponse()); }
/// <summary> /// Gets the CsvZip data controller for SDMX v2.0 SOAP or REST. /// </summary> /// <param name="dataFormat"> /// The compact data format. /// </param> /// <param name="sdmxSchema"> /// The SDMX schema V20. /// </param> /// <param name="principal"> /// The principal. /// </param> /// <returns> /// The <see cref="IController{XmlNode,XmlWriter}"/>. /// </returns> private CsvZipDataController<CsvZipTextWriter> GetCsvZipDataController(BaseDataFormat dataFormat, SdmxSchema sdmxSchema, DataflowPrincipal principal) { CsvZipDataController<CsvZipTextWriter> CsvZipDataController; var dataWriterBuilder = new CsvZipDataWriterBuilder(dataFormat, sdmxSchema); var CsvZipDataResponseGenerator = new CsvZipDataResponseGenerator<CsvZipTextWriter>(this.GetDataRetrievalWithWriter(sdmxSchema.EnumType), dataWriterBuilder); CsvZipDataController = new CsvZipDataController<CsvZipTextWriter>(CsvZipDataResponseGenerator, new DataRequestValidator(dataFormat, sdmxSchema), principal); return CsvZipDataController; }
/// <summary> /// Initializes a new instance of the <see cref="DataRequestValidator"/> class. /// Initializes a new instance of the <see cref="T:System.Object"/> class. /// </summary> /// <param name="format"> /// The format. /// </param> /// <param name="schema"> /// The schema. /// </param> public DataRequestValidator(BaseDataFormat format, SdmxSchema schema) { this._format = format; this._schema = schema; }
/// <summary> /// Gets the Advanced (SDMX v2.1 SOAP) data controller. /// </summary> /// <param name="dataFormat"> /// The compact data format. /// </param> /// <param name="sdmxSchema"> /// The SDMX schema V20. /// </param> /// <param name="principal"> /// The principal. /// </param> /// <returns> /// The <see cref="IController{XmlNode,XmlWriter}"/>. /// </returns> private IController<Message, XmlWriter> GetAdvancedDataController(BaseDataFormat dataFormat, SdmxSchema sdmxSchema, DataflowPrincipal principal) { var dataWriterBuilder = new DataWriterBuilder(dataFormat, sdmxSchema); var dataResponseGenerator = new AdvancedDataResponseGenerator<XmlWriter>(this._advancedRetrievalWithWriter, dataWriterBuilder); var operation = dataFormat.GetSoapOperation(SdmxSchemaEnumType.VersionTwoPointOne); var dataController = new DataController<IComplexDataQuery, XmlWriter>(dataResponseGenerator); IDataflowLogManager dataflowLogManager = new DataflowLogManager(dataFormat); var requestLogDataController = new RequestLogDataController<IComplexDataQuery, XmlWriter>(dataController, dataflowLogManager); var validatingDataController = new ValidatingDataController<IComplexDataQuery, XmlWriter>(requestLogDataController, new DataRequestValidator(dataFormat, sdmxSchema)); var authDataController = new AuthDataController<IComplexDataQuery, XmlWriter>(validatingDataController, principal); return new AdvancedDataController<XmlWriter>(operation, authDataController, this._mappingStoreSdmxObjectRetrievalManager); }
public IController<Message, CsvZipTextWriter> BuildCsvZipDataFromMessage(DataflowPrincipal principal, BaseDataFormat baseDataFormat) { return this.GetCsvZipDataController(baseDataFormat, _sdmxSchemaV20, principal); }
/// <summary> /// Initializes static members of the <see cref="ControllerBuilder" /> class. /// </summary> static ControllerBuilder() { _compactDataFormat = BaseDataFormat.GetFromEnum(BaseDataFormatEnumType.Compact); _genericDataFormat = BaseDataFormat.GetFromEnum(BaseDataFormatEnumType.Generic); _crossSectional = BaseDataFormat.GetFromEnum(BaseDataFormatEnumType.CrossSectional); _sdmxSchemaV20 = SdmxSchema.GetFromEnum(SdmxSchemaEnumType.VersionTwo); _sdmxSchemaV21 = SdmxSchema.GetFromEnum(SdmxSchemaEnumType.VersionTwoPointOne); }
/// <summary> /// The get version from media type. /// </summary> /// <param name="selectedMediaTypeWithVersion"> /// The selected media type with version. /// </param> /// <param name="format"> /// The format. /// </param> /// <returns> /// The <see cref="SdmxSchema"/>. /// </returns> private static SdmxSchema GetVersionFromMediaType(ContentType selectedMediaTypeWithVersion, BaseDataFormat format) { SdmxSchema version = null; switch (format.EnumType) { case BaseDataFormatEnumType.Edi: version = SdmxSchema.GetFromEnum(SdmxSchemaEnumType.Edi); break; case BaseDataFormatEnumType.Csv: version = SdmxSchema.GetFromEnum(SdmxSchemaEnumType.Csv); break; default: version = RestUtils.GetVersionFromMediaType(selectedMediaTypeWithVersion); break; } return(version); }
/// <summary> /// Gets the Advanced (SDMX v2.1 SOAP) data controller. /// </summary> /// <param name="dataFormat"> /// The compact data format. /// </param> /// <param name="sdmxSchema"> /// The SDMX schema V20. /// </param> /// <param name="principal"> /// The principal. /// </param> /// <returns> /// The <see cref="IController{XmlNode,XmlWriter}"/>. /// </returns> private IController<Message, XmlWriter> GetAdvancedDataController(BaseDataFormat dataFormat, SdmxSchema sdmxSchema, DataflowPrincipal principal) { var dataWriterBuilder = new DataWriterBuilder(dataFormat, sdmxSchema); var dataResponseGenerator = new AdvancedDataResponseGenerator<XmlWriter>(this._advancedRetrievalWithWriter, dataWriterBuilder); var operation = dataFormat.GetSoapOperation(SdmxSchemaEnumType.VersionTwoPointOne); var dataController = new AdvancedDataController<XmlWriter>(dataResponseGenerator, new DataRequestValidator(dataFormat, sdmxSchema), principal, operation); return dataController; }
/// <summary> /// Initializes a new instance of the <see cref="DataRequestValidator"/> class. /// Initializes a new instance of the <see cref="T:System.Object"/> class. /// </summary> /// <param name="format"> /// The format. /// </param> /// <param name="schema"> /// The schema. /// </param> public DataRequestValidator(BaseDataFormat format, SdmxSchema schema) { this._format = format; this._schema = schema; }
internal string InitializingFromXml(string methodOfExtraction) { _baseDataFormat = new Xml(); return(Constants.Url == methodOfExtraction ? (new Xml().DataExtractionFromUrl(_expression)) : (new Xml().DataExtractionFromLocal(_expression))); }