/// <summary>
 /// Initializes a new instance of the <see cref="AgencyMetadataImpl"/> class.
 /// </summary>
 /// <param name="agencyId">
 /// The agency id.
 /// </param>
 /// <param name="objects">
 /// The objects.
 /// </param>
 public AgencyMetadataImpl(string agencyId, ISdmxObjects objects)
 {
     this._structureMap = new Dictionary<SdmxStructureEnumType, int>();
     this._agencyId = agencyId;
     this._structureMap.Add(SdmxStructureEnumType.AgencyScheme, objects.GetAgenciesScheme(agencyId) == null ? 0 : 1);
     this._structureMap.Add(
         SdmxStructureEnumType.AttachmentConstraint, objects.GetAttachmentConstraints(agencyId).Count);
     this._structureMap.Add(
         SdmxStructureEnumType.ContentConstraint, objects.GetContentConstraintObjects(agencyId).Count);
     this._structureMap.Add(
         SdmxStructureEnumType.DataProviderScheme, objects.GetDataProviderScheme(agencyId) == null ? 0 : 1);
     this._structureMap.Add(
         SdmxStructureEnumType.DataConsumerScheme, objects.GetDataConsumerScheme(agencyId) == null ? 0 : 1);
     this._structureMap.Add(
         SdmxStructureEnumType.OrganisationUnitScheme, objects.GetOrganisationUnitSchemes(agencyId).Count);
     this._structureMap.Add(SdmxStructureEnumType.Categorisation, objects.GetCategorisations(agencyId).Count);
     this._structureMap.Add(SdmxStructureEnumType.Dataflow, objects.GetDataflows(agencyId).Count);
     this._structureMap.Add(SdmxStructureEnumType.MetadataFlow, objects.GetMetadataflows(agencyId).Count);
     this._structureMap.Add(SdmxStructureEnumType.CategoryScheme, objects.GetCategorySchemes(agencyId).Count);
     this._structureMap.Add(SdmxStructureEnumType.ConceptScheme, objects.GetConceptSchemes(agencyId).Count);
     this._structureMap.Add(SdmxStructureEnumType.CodeList, objects.GetCodelists(agencyId).Count);
     this._structureMap.Add(
         SdmxStructureEnumType.HierarchicalCodelist, objects.GetHierarchicalCodelists(agencyId).Count);
     this._structureMap.Add(SdmxStructureEnumType.Msd, objects.GetMetadataStructures(agencyId).Count);
     this._structureMap.Add(SdmxStructureEnumType.Dsd, objects.GetDataStructures(agencyId).Count);
     this._structureMap.Add(SdmxStructureEnumType.Process, objects.GetProcesses(agencyId).Count);
     this._structureMap.Add(
         SdmxStructureEnumType.ReportingTaxonomy, objects.GetReportingTaxonomys(agencyId).Count);
     this._structureMap.Add(SdmxStructureEnumType.StructureSet, objects.GetStructureSets(agencyId).Count);
     this._structureMap.Add(
         SdmxStructureEnumType.ProvisionAgreement, objects.GetProvisionAgreements(agencyId).Count);
 }
 /// <summary>
 /// Builds the series.
 /// </summary>
 /// <param name="objects">The objects.</param>
 /// <returns>The <see cref="System.Object"/>.</returns>
 private static dynamic BuildSeries(ISdmxObjects objects)
 {
     ICodelistObject freqCl = objects.GetCodelists(new MaintainableRefObjectImpl(null, "CL_FREQ", null)).First();
     ICodelistObject adjCl = objects.GetCodelists(new MaintainableRefObjectImpl(null, "CL_ADJUSTMENT", null)).First();
     ICodelistObject actCl = objects.GetCodelists(new MaintainableRefObjectImpl(null, "CL_STS_ACTIVITY", null)).First();
     var freqCodes = new[] { "Q", "A", "M" };
     var validFreqCodes = freqCl.Items.Where(code => freqCodes.Contains(code.Id));
     var series = (from f in validFreqCodes from ad in adjCl.Items from ac in actCl.Items.Where(code => code.Id.StartsWith("NS0")) select new { f, ad, ac }).ToArray();
     return series;
 }