Exemplo n.º 1
0
        /// <summary>
        /// Build a list of structure references
        /// </summary>
        /// <param name="queryStructureRequests">
        /// given structure request query containing lists of references for each structure type.
        /// </param>
        /// <returns>
        /// list of structure references
        /// </returns>
        public IList<IStructureReference> Build(QueryStructureRequestType queryStructureRequests)
        {
            IList<IStructureReference> reutrnList = new List<IStructureReference>();

            /* foreach */
            foreach (AgencyRefType agencyRefType in queryStructureRequests.AgencyRef)
            {
                var urn = agencyRefType.URN;
                if (ObjectUtil.ValidString(urn))
                {
                    reutrnList.Add(new StructureReferenceImpl(urn));
                }
                else
                {
                    string agencyId = agencyRefType.AgencyID;
                    string maintId = agencyRefType.OrganisationSchemeID;
                    string version = agencyRefType.OrganisationSchemeAgencyID;
                    reutrnList.Add(
                        new StructureReferenceImpl(
                            agencyId, maintId, version, SdmxStructureType.GetFromEnum(SdmxStructureEnumType.Agency)));
                }
            }

            if (queryStructureRequests.CategorySchemeRef != null)
            {
                /* foreach */
                foreach (CategorySchemeRefType refType in queryStructureRequests.CategorySchemeRef)
                {
                    var urn0 = refType.URN;
                    if (ObjectUtil.ValidString(urn0))
                    {
                        reutrnList.Add(new StructureReferenceImpl(urn0));
                    }
                    else
                    {
                        string agencyId1 = refType.AgencyID;
                        string maintId2 = refType.CategorySchemeID;
                        string version3 = refType.Version;
                        reutrnList.Add(
                            new StructureReferenceImpl(
                                agencyId1, 
                                maintId2, 
                                version3, 
                                SdmxStructureType.GetFromEnum(SdmxStructureEnumType.CategoryScheme)));
                    }
                }
            }

            if (queryStructureRequests.CodelistRef != null)
            {
                /* foreach */
                foreach (CodelistRefType refType4 in queryStructureRequests.CodelistRef)
                {
                    var urn5 = refType4.URN;
                    if (ObjectUtil.ValidString(urn5))
                    {
                        reutrnList.Add(new StructureReferenceImpl(urn5));
                    }
                    else
                    {
                        string agencyId6 = refType4.AgencyID;
                        string maintId7 = refType4.CodelistID;
                        string version8 = refType4.Version;
                        reutrnList.Add(
                            new StructureReferenceImpl(
                                agencyId6, 
                                maintId7, 
                                version8, 
                                SdmxStructureType.GetFromEnum(SdmxStructureEnumType.CodeList)));
                    }
                }
            }

            if (queryStructureRequests.ConceptSchemeRef != null)
            {
                /* foreach */
                foreach (ConceptSchemeRefType refType9 in queryStructureRequests.ConceptSchemeRef)
                {
                    var urn10 = refType9.URN;
                    if (ObjectUtil.ValidString(urn10))
                    {
                        reutrnList.Add(new StructureReferenceImpl(urn10));
                    }
                    else
                    {
                        string agencyId11 = refType9.AgencyID;
                        string maintId12 = refType9.ConceptSchemeID;
                        string version13 = refType9.Version;
                        reutrnList.Add(
                            new StructureReferenceImpl(
                                agencyId11, 
                                maintId12, 
                                version13, 
                                SdmxStructureType.GetFromEnum(SdmxStructureEnumType.ConceptScheme)));
                    }
                }
            }
            
            if (queryStructureRequests.DataflowRef != null)
            {
                foreach (DataflowRefType refType14 in queryStructureRequests.DataflowRef)
                {
                    var structureReferenceImpl = this.BuildDataflowQuery(refType14);
                    reutrnList.Add(structureReferenceImpl);
                }
            }

            if (queryStructureRequests.DataProviderRef != null)
            {
                /* foreach */
                foreach (DataProviderRefType refType19 in queryStructureRequests.DataProviderRef)
                {
                    var urn20 = refType19.URN;
                    if (ObjectUtil.ValidString(urn20))
                    {
                        reutrnList.Add(new StructureReferenceImpl(urn20));
                    }
                    else
                    {
                        string agencyId21 = refType19.OrganisationSchemeAgencyID;
                        string maintId22 = refType19.OrganisationSchemeAgencyID;
                        string version23 = refType19.Version;
                        string id = refType19.DataProviderID;
                        reutrnList.Add(
                            new StructureReferenceImpl(
                                agencyId21, 
                                maintId22, 
                                version23, 
                                SdmxStructureType.GetFromEnum(SdmxStructureEnumType.DataProvider), 
                                id));
                    }
                }
            }

            if (queryStructureRequests.HierarchicalCodelistRef != null)
            {
                /* foreach */
                foreach (HierarchicalCodelistRefType refType24 in queryStructureRequests.HierarchicalCodelistRef)
                {
                    var urn25 = refType24.URN;
                    if (ObjectUtil.ValidString(urn25))
                    {
                        reutrnList.Add(new StructureReferenceImpl(urn25));
                    }
                    else
                    {
                        string agencyId26 = refType24.AgencyID;
                        string maintId27 = refType24.HierarchicalCodelistID;
                        string version28 = refType24.Version;
                        reutrnList.Add(
                            new StructureReferenceImpl(
                                agencyId26, 
                                maintId27, 
                                version28, 
                                SdmxStructureType.GetFromEnum(SdmxStructureEnumType.HierarchicalCodelist)));
                    }
                }
            }

            if (queryStructureRequests.KeyFamilyRef != null)
            {
                /* foreach */
                foreach (KeyFamilyRefType refType29 in queryStructureRequests.KeyFamilyRef)
                {
                    var urn30 = refType29.URN;
                    if (ObjectUtil.ValidString(urn30))
                    {
                        reutrnList.Add(new StructureReferenceImpl(urn30));
                    }
                    else
                    {
                        string agencyId31 = refType29.AgencyID;
                        string maintId32 = refType29.KeyFamilyID;
                        string version33 = refType29.Version;
                        reutrnList.Add(
                            new StructureReferenceImpl(
                                agencyId31, 
                                maintId32, 
                                version33, 
                                SdmxStructureType.GetFromEnum(SdmxStructureEnumType.Dsd)));
                    }
                }
            }

            if (queryStructureRequests.MetadataflowRef != null)
            {
                /* foreach */
                foreach (MetadataflowRefType refType34 in queryStructureRequests.MetadataflowRef)
                {
                    var urn35 = refType34.URN;
                    if (ObjectUtil.ValidString(urn35))
                    {
                        reutrnList.Add(new StructureReferenceImpl(urn35));
                    }
                    else
                    {
                        string agencyId36 = refType34.AgencyID;
                        string maintId37 = refType34.MetadataflowID;
                        string version38 = refType34.Version;
                        reutrnList.Add(
                            new StructureReferenceImpl(
                                agencyId36, 
                                maintId37, 
                                version38, 
                                SdmxStructureType.GetFromEnum(SdmxStructureEnumType.MetadataFlow)));
                    }
                }
            }

            if (queryStructureRequests.MetadataStructureRef != null)
            {
                /* foreach */
                foreach (MetadataStructureRefType refType39 in queryStructureRequests.MetadataStructureRef)
                {
                    var urn40 = refType39.URN;
                    if (ObjectUtil.ValidString(urn40))
                    {
                        reutrnList.Add(new StructureReferenceImpl(urn40));
                    }
                    else
                    {
                        string agencyId41 = refType39.AgencyID;
                        string maintId42 = refType39.MetadataStructureID;
                        string version43 = refType39.Version;
                        reutrnList.Add(
                            new StructureReferenceImpl(
                                agencyId41, 
                                maintId42, 
                                version43, 
                                SdmxStructureType.GetFromEnum(SdmxStructureEnumType.Msd)));
                    }
                }
            }

            if (queryStructureRequests.OrganisationSchemeRef != null)
            {
                /* foreach */
                foreach (OrganisationSchemeRefType refType44 in queryStructureRequests.OrganisationSchemeRef)
                {
                    var urn45 = refType44.URN;
                    if (ObjectUtil.ValidString(urn45))
                    {
                        reutrnList.Add(new StructureReferenceImpl(urn45));
                    }
                    else
                    {
                        string agencyId46 = refType44.AgencyID;
                        string maintId47 = refType44.OrganisationSchemeID;
                        string version48 = refType44.Version;
                        reutrnList.Add(
                            new StructureReferenceImpl(
                                agencyId46, 
                                maintId47, 
                                version48, 
                                SdmxStructureType.GetFromEnum(SdmxStructureEnumType.AgencyScheme)));
                        reutrnList.Add(
                            new StructureReferenceImpl(
                                agencyId46, 
                                maintId47, 
                                version48, 
                                SdmxStructureType.GetFromEnum(SdmxStructureEnumType.DataConsumerScheme)));
                        reutrnList.Add(
                            new StructureReferenceImpl(
                                agencyId46, 
                                maintId47, 
                                version48, 
                                SdmxStructureType.GetFromEnum(SdmxStructureEnumType.DataProviderScheme)));
                    }
                }
            }

            if (queryStructureRequests.ProcessRef != null)
            {
                /* foreach */
                foreach (ProcessRefType refType49 in queryStructureRequests.ProcessRef)
                {
                    var urn50 = refType49.URN;
                    if (ObjectUtil.ValidString(urn50))
                    {
                        reutrnList.Add(new StructureReferenceImpl(urn50));
                    }
                    else
                    {
                        string agencyId51 = refType49.AgencyID;
                        string maintId52 = refType49.ProcessID;
                        string version53 = refType49.Version;
                        reutrnList.Add(
                            new StructureReferenceImpl(
                                agencyId51, 
                                maintId52, 
                                version53, 
                                SdmxStructureType.GetFromEnum(SdmxStructureEnumType.Process)));
                    }
                }
            }

            if (queryStructureRequests.ReportingTaxonomyRef != null)
            {
                /* foreach */
                foreach (ReportingTaxonomyRefType refType54 in queryStructureRequests.ReportingTaxonomyRef)
                {
                    var urn55 = refType54.URN;
                    if (ObjectUtil.ValidString(urn55))
                    {
                        reutrnList.Add(new StructureReferenceImpl(urn55));
                    }
                    else
                    {
                        string agencyId56 = refType54.AgencyID;
                        string maintId57 = refType54.ReportingTaxonomyID;
                        string version58 = refType54.Version;
                        reutrnList.Add(
                            new StructureReferenceImpl(
                                agencyId56, 
                                maintId57, 
                                version58, 
                                SdmxStructureType.GetFromEnum(SdmxStructureEnumType.ReportingTaxonomy)));
                    }
                }
            }

            if (queryStructureRequests.StructureSetRef != null)
            {
                /* foreach */
                foreach (StructureSetRefType refType59 in queryStructureRequests.StructureSetRef)
                {
                    var urn60 = refType59.URN;
                    if (ObjectUtil.ValidString(urn60))
                    {
                        reutrnList.Add(new StructureReferenceImpl(urn60));
                    }
                    else
                    {
                        string agencyId61 = refType59.AgencyID;
                        string maintId62 = refType59.StructureSetID;
                        string version63 = refType59.Version;
                        reutrnList.Add(
                            new StructureReferenceImpl(
                                agencyId61, 
                                maintId62, 
                                version63, 
                                SdmxStructureType.GetFromEnum(SdmxStructureEnumType.StructureSet)));
                    }
                }
            }

            return reutrnList;
        }
 /// <summary>
 /// Builds a list of structure references from a version 2.0 registry query structure request message
 /// </summary>
 /// <param name="queryStructureRequests">
 /// The Query Structure Request (SDMX Registry Interface v2.0)
 /// </param>
 /// <returns>
 /// list of structure references
 /// </returns>
 public virtual IList<IStructureReference> Build(QueryStructureRequestType queryStructureRequests)
 {
     return this._queryBuilderV2.Build(queryStructureRequests);
 }