public void TestSDMXv20XS(string filePath, string name, int allowedObs) { var connectionString = ConfigurationManager.ConnectionStrings [name]; IList<IDataQuery> dataQueries; var mappingStoreSdmxObjectRetrievalManager = new MappingStoreSdmxObjectRetrievalManager(connectionString); using (IReadableDataLocation dataLocation = new FileReadableDataLocation(filePath)) { dataQueries = this._dataQueryParseManager.BuildDataQuery(dataLocation, mappingStoreSdmxObjectRetrievalManager); } Assert.IsNotEmpty(dataQueries); var dataQuery = dataQueries.First(); var outputFileName = string.Format("{0}-soap-v20-xs-max-obs-out.xml", filePath); using (XmlWriter writer = XmlWriter.Create(outputFileName, new XmlWriterSettings { Indent = true })) { ICrossSectionalWriterEngine dataWriter = new CrossSectionalWriterEngine(writer, SdmxSchema.GetFromEnum(SdmxSchemaEnumType.VersionTwo)); ISdmxDataRetrievalWithCrossWriter advancedSdmxDataRetrievalWithWriter = new DataRetrieverCore(this._defaultHeader, connectionString, SdmxSchemaEnumType.VersionTwo, allowedObs); advancedSdmxDataRetrievalWithWriter.GetData(dataQuery, dataWriter); writer.Flush(); } }
/// <summary> /// Initializes a new instance of the <see cref="ControllerBuilder"/> class. /// </summary> /// <param name="mappingStoreConnectionSettings"> /// The mapping store connection settings. /// </param> /// <param name="defaultHeader"> /// The default header. /// </param> public ControllerBuilder(ConnectionStringSettings mappingStoreConnectionSettings, IHeader defaultHeader) { if (mappingStoreConnectionSettings == null) { _log.Error("No connection string defined. Please check the web.config."); throw new ArgumentNullException("mappingStoreConnectionSettings"); } var dataRetrieverCore = new DataRetrieverCore(defaultHeader, mappingStoreConnectionSettings, SdmxSchemaEnumType.VersionTwo); var dataRetrieverV21 = new DataRetrieverCore(defaultHeader, mappingStoreConnectionSettings, SdmxSchemaEnumType.VersionTwoPointOne); this._retrievalWithCrossWriter = dataRetrieverCore; this._retrievalWithWriter = dataRetrieverCore; this._retrievalWithWriterv21 = dataRetrieverV21; this._advancedRetrievalWithWriter = dataRetrieverV21; // structure search factories IStructureSearchManagerFactory<IAdvancedMutableStructureSearchManager> advancedFactory = new AdvancedMutableStructureSearchManagerFactory(); IStructureSearchManagerFactory<IAuthAdvancedMutableStructureSearchManager> autAdvancedFactory = new AuthAdvancedMutableStructureSearchManagerFactory(); IStructureSearchManagerFactory<IMutableStructureSearchManager> structureSearchManager = new MutableStructureSearchManagerFactory(); IStructureSearchManagerFactory<IAuthMutableStructureSearchManager> autFactory = new AuthMutableStructureSearchManagerFactory(); // advanced structure search managers this._advancedMutableStructureSearchManager = advancedFactory.GetStructureSearchManager(mappingStoreConnectionSettings, _sdmxSchemaV21); this._authAdvancedMutableStructureSearchManager = autAdvancedFactory.GetStructureSearchManager(mappingStoreConnectionSettings, _sdmxSchemaV21); // simple structure search managers this._mutableStructureSearchManagerV20 = structureSearchManager.GetStructureSearchManager(mappingStoreConnectionSettings, _sdmxSchemaV20); this._authMutableStructureSearchManagerV20 = autFactory.GetStructureSearchManager(mappingStoreConnectionSettings, _sdmxSchemaV20); this._mutableStructureSearchManagerV21 = structureSearchManager.GetStructureSearchManager(mappingStoreConnectionSettings, _sdmxSchemaV21); this._authMutableStructureSearchManagerV21 = autFactory.GetStructureSearchManager(mappingStoreConnectionSettings, _sdmxSchemaV21); this._mappingStoreSdmxObjectRetrievalManager = new MappingStoreSdmxObjectRetrievalManager(mappingStoreConnectionSettings); }
public void TestRest(string restUrl, string connectionName, int allowedObs) { var connectionString = ConfigurationManager.ConnectionStrings [connectionName]; var mappingStoreSdmxObjectRetrievalManager = new MappingStoreSdmxObjectRetrievalManager(connectionString); var dataQuery = this._dataQueryParseManager.ParseRestQuery(restUrl, mappingStoreSdmxObjectRetrievalManager); Assert.IsNotNull(dataQuery); var outputFileName = string.Format("REST-{0}-{1}-{2}-{3}--max-obsout.xml", dataQuery.Dataflow.Id, dataQuery.DimensionAtObservation, dataQuery.FirstNObservations, dataQuery.LastNObservations); using (XmlWriter writer = XmlWriter.Create(outputFileName, new XmlWriterSettings { Indent = true })) { IDataWriterEngine dataWriter = new CompactDataWriterEngine(writer, SdmxSchema.GetFromEnum(SdmxSchemaEnumType.VersionTwoPointOne)); ISdmxDataRetrievalWithWriter sdmxDataRetrievalWithWriter = new DataRetrieverCore(this._defaultHeader, connectionString, SdmxSchemaEnumType.VersionTwoPointOne, allowedObs); sdmxDataRetrievalWithWriter.GetData(dataQuery, dataWriter); writer.Flush(); } }
/// <summary> /// Initializes a new instance of the <see cref="SriRetrieverFactory" /> class. /// </summary> /// <exception cref="StructureRetrieverException">Could not establish a connection to the mapping store DB /// <see cref="P:Estat.Nsi.StructureRetriever.StructureRetrieverException.ErrorType" /> /// is set to <see cref="F:Estat.Nsi.StructureRetriever.StructureRetrieverErrorTypes.MappingStoreConnectionError" /></exception> public SriRetrieverFactory() { var defaultHeader = SettingsManager.Header; var settingsManager = new MappingStoreSettingsManager(); var mappingStoreConnectionSettings = settingsManager.MappingStoreConnectionSettings; if (mappingStoreConnectionSettings != null) { // Data Retriever initialization var dataRetrieverSdmxv20Behaviour = new DataRetrieverCore(defaultHeader, mappingStoreConnectionSettings, SdmxSchemaEnumType.VersionTwo); var dataRetrieverSdmxV21Behaviour = new DataRetrieverCore(defaultHeader, mappingStoreConnectionSettings, SdmxSchemaEnumType.VersionTwoPointOne); // SDMX v2.0 WS Soap for SDMX v2.0 CrossSectional data (does not throw No Results when no data is found). this._sdmxv20XSDataRetrievalForWs20 = dataRetrieverSdmxv20Behaviour; // SDMX v2.1 WS REST for SDMX v2.0 CrossSectional data (throws No Results when no data is found). this._sdmxV20XSDataRetrieverForRest = dataRetrieverSdmxV21Behaviour; this._dataRetrievalForWs20 = dataRetrieverSdmxv20Behaviour; this._dataRetrievalForRest = dataRetrieverSdmxV21Behaviour; this._dataRetrieverForWs21 = dataRetrieverSdmxV21Behaviour; // advanced structure search managers (SDMX v2.1 SOAP) SdmxSchema sdmxSchemaV21 = SdmxSchema.GetFromEnum(SdmxSchemaEnumType.VersionTwoPointOne); this._structureRetrievalForWs21 = new Estat.Nsi.StructureRetriever.Manager.AdvancedStructureRetriever(mappingStoreConnectionSettings); this._authStructureRetrievalForWs21 = new AuthAdvancedStructureRetriever(mappingStoreConnectionSettings); // simple structure search managers (SDMX v2.0 SOAP) SdmxSchema sdmxSchemaV20 = SdmxSchema.GetFromEnum(SdmxSchemaEnumType.VersionTwo); this._structureRetrievalForWs20 = new StructureRetrieverAvailableData(mappingStoreConnectionSettings, sdmxSchemaV20); this._authStructureRetrievalForWs20 = new AuthStructureRetrieverAvailableData(mappingStoreConnectionSettings, sdmxSchemaV20); // structure search manager (SDMX v2.1 REST) this._structureRetrievalForRest = new StructureRetrieverAvailableData(mappingStoreConnectionSettings, sdmxSchemaV21); this._authStructureRetrievalForRest = new AuthStructureRetrieverAvailableData(mappingStoreConnectionSettings, sdmxSchemaV21); this._mappingStoreSdmxObjectRetrievalManager = new MappingStoreSdmxObjectRetrievalManager(mappingStoreConnectionSettings); } }