/// <summary> /// Convert to <see cref="IComplexStructureReferenceObject"/>. /// </summary> /// <param name="reference">The reference.</param> /// <returns>The <see cref="IComplexStructureReferenceObject"/>.</returns> public static IComplexStructureReferenceObject ToComplex(this IStructureReference reference) { var maintainableRef = reference.MaintainableReference; IComplexTextReference id = null; if (maintainableRef.HasMaintainableId()) { id = new ComplexTextReferenceCore(null, TextSearch.GetFromEnum(TextSearchEnumType.Equal), maintainableRef.MaintainableId); } IComplexTextReference agency = null; if (maintainableRef.HasAgencyId()) { agency = new ComplexTextReferenceCore(null, TextSearch.GetFromEnum(TextSearchEnumType.Equal), maintainableRef.AgencyId); } IComplexVersionReference version = maintainableRef.HasVersion() ? new ComplexVersionReferenceCore(TertiaryBool.ParseBoolean(false), maintainableRef.Version, null, null) : new ComplexVersionReferenceCore(TertiaryBool.ParseBoolean(true), null, null, null); return new ComplexStructureReferenceCore(agency, id, version, reference.MaintainableStructureEnumType, null, null, null, null); }
public void TestDetail(SdmxStructureEnumType sdmxStructure, StructureReferenceDetailEnumType detail) { var agency = new ComplexTextReferenceCore(null, TextSearch.GetFromEnum(TextSearchEnumType.Equal), "TEST"); var id = new ComplexTextReferenceCore(null, TextSearch.GetFromEnum(TextSearchEnumType.Equal), "TEST"); IComplexVersionReference versionRef = new ComplexVersionReferenceCore(TertiaryBool.ParseBoolean(false), "1.0", null, null); var complexStructureReferenceCore = new ComplexStructureReferenceCore(agency, id, versionRef, SdmxStructureType.GetFromEnum(sdmxStructure), null, null, null, null); var complexStructureQueryMetadataCore = new ComplexStructureQueryMetadataCore( true, ComplexStructureQueryDetail.GetFromEnum(ComplexStructureQueryDetailEnumType.Full), ComplexMaintainableQueryDetail.GetFromEnum(ComplexMaintainableQueryDetailEnumType.Full), StructureReferenceDetail.GetFromEnum(detail), new [] { SdmxStructureType.GetFromEnum(sdmxStructure) }); IComplexStructureQuery complexStructureQuery = new ComplexStructureQueryCore(complexStructureReferenceCore, complexStructureQueryMetadataCore); var builder = new ComplexStructureQueryBuilderV21(); var structureQuery = builder.BuildComplexStructureQuery(complexStructureQuery); var fileName = string.Format("test-ComplexStructureQueryBuilderV21-{0}-{1}.xml", sdmxStructure.ToString(), detail.ToString()); structureQuery.Save(fileName); using (var readable = new FileReadableDataLocation(fileName)) { XMLParser.ValidateXml(readable, SdmxSchemaEnumType.VersionTwoPointOne); } }