public ISet<ICodelistObject> GetCodelistStruc()
        {
                WebOperationContext ctx = WebOperationContext.Current;
                IRestStructureQuery input = BuildRestQueryBean(structure, agencyID, resourceID, version, ctx.IncomingRequest.UriTemplateMatch.QueryParameters);

                CodelistXmlBuilder codelistXmlBuilderBean = new CodelistXmlBuilder();
                var codelistsType = new CodelistsType();
                var structures = new StructuresType();
                structures.Codelists = codelistsType;
                IMutableStructureSearchManager mutableStructureSearchManagerV21;

                IStructureSearchManagerFactory<IMutableStructureSearchManager> structureSearchManager = new MutableStructureSearchManagerFactory();
                var sdmxSchemaV21 = SdmxSchema.GetFromEnum(SdmxSchemaEnumType.VersionTwoPointOne);

                mutableStructureSearchManagerV21 = structureSearchManager.GetStructureSearchManager(SettingsManager.MappingStoreConnectionSettings, sdmxSchemaV21);
                this._structureSearchManager = mutableStructureSearchManagerV21; ;
                IMutableObjects mutableObjects = this._structureSearchManager.GetMaintainables(input);
                var immutableObj = mutableObjects.ImmutableObjects;
                immutableObj.Header = SettingsManager.Header;
                ISet<ICodelistObject> codelists = immutableObj.Codelists;

                return codelists;
        }
 /// <summary>
 /// Build SDMX objects from v2.1 structures
 /// </summary>
 /// <param name="structures">
 /// The structures
 /// </param>
 /// <param name="header">
 /// The header.
 /// </param>
 /// <returns>
 /// beans container of all beans built
 /// </returns>
 private ISdmxObjects Build(StructuresType structures, IHeader header, DatasetAction action)
 {
     var beans = new SdmxObjectsImpl(header, action);
     this.ProcessOrganisationSchemes(structures.OrganisationSchemes, beans);
     this.ProcessDataflows(structures.Dataflows, beans);
     this.ProcessMetadataFlows(structures.Metadataflows, beans);
     this.ProcessCategorySchemes(structures.CategorySchemes, beans);
     this.ProcessCategorisations(structures.Categorisations, beans);
     this.ProcessCodelists(structures.Codelists, beans);
     this.ProcessHierarchicalCodelists(structures.HierarchicalCodelists, beans);
     this.ProcessConcepts(structures.Concepts, beans);
     this.ProcessMetadataStructures(structures.MetadataStructures, beans);
     this.ProcessDataStructures(structures.DataStructures, beans);
     this.ProcessStructureSets(structures.StructureSets, beans);
     this.ProcessReportingTaxonomies(structures.ReportingTaxonomies, beans);
     this.ProcessProcesses(structures.Processes, beans);
     this.ProcessConstraints(structures.Constraints, beans);
     this.ProcessProvisions(structures.ProvisionAgreements, beans);
     return beans;
 }