/// <summary> /// Build a provision agreement reference bean /// </summary> /// <param name="queryProvisionRequestType"> /// given provision request query containing references to its beans /// </param> /// <returns> /// provision agreement reference bean of query reference, which ever of provision agreement, dataflow, metadataflow and data provider is given, in that order. /// </returns> public IStructureReference Build(QueryProvisioningRequestType queryProvisionRequestType) { DataflowRefType dataflowRef = queryProvisionRequestType.DataflowRef; DataProviderRefType dataProviderRef = queryProvisionRequestType.DataProviderRef; MetadataflowRefType metadataflowRef = queryProvisionRequestType.MetadataflowRef; ProvisionAgreementRefType provRef = queryProvisionRequestType.ProvisionAgreementRef; if (dataProviderRef != null) { if (ObjectUtil.ValidString(dataProviderRef.URN)) { return new StructureReferenceImpl(dataProviderRef.URN); } string agencyId = dataProviderRef.OrganisationSchemeAgencyID; string maintId = dataProviderRef.OrganisationSchemeID; string version = dataProviderRef.Version; string id = dataProviderRef.DataProviderID; return new StructureReferenceImpl( agencyId, maintId, version, SdmxStructureType.GetFromEnum(SdmxStructureEnumType.DataProvider), id); } if (provRef != null) { if (ObjectUtil.ValidString(provRef.URN)) { return new StructureReferenceImpl(provRef.URN); } } if (dataflowRef != null) { if (ObjectUtil.ValidString(dataflowRef.URN)) { return new StructureReferenceImpl(dataflowRef.URN); } string agencyId0 = dataflowRef.AgencyID; string maintId1 = dataflowRef.DataflowID; string version2 = dataflowRef.Version; return new StructureReferenceImpl( agencyId0, maintId1, version2, SdmxStructureType.GetFromEnum(SdmxStructureEnumType.Dataflow)); } if (metadataflowRef != null) { if (ObjectUtil.ValidString(metadataflowRef.URN)) { return new StructureReferenceImpl(metadataflowRef.URN); } string agencyId3 = metadataflowRef.AgencyID; string maintId4 = metadataflowRef.MetadataflowID; string version5 = metadataflowRef.Version; return new StructureReferenceImpl( agencyId3, maintId4, version5, SdmxStructureType.GetFromEnum(SdmxStructureEnumType.MetadataFlow)); } throw new SdmxNotImplementedException( ExceptionCode.Unsupported, "At version 2.0 provisions can only be queryies by Provision URN, Dataflow Ref, Data Provider Ref or Metadata Flow Ref"); }
/// <summary> /// Builds a list of provision references from a version 2.0 registry query provision request message /// </summary> /// <param name="queryProvisionRequestType"> /// The query Provision Request Type. /// </param> /// <returns> /// provision references /// </returns> public virtual IStructureReference Build(QueryProvisioningRequestType queryProvisionRequestType) { return this._queryBuilderV2.Build(queryProvisionRequestType); }