示例#1
0
        public void TestDimensionAtObservation()
        {
            IDataStructureMutableObject dsd = new DataStructureMutableCore() { Id = "TEST", AgencyId = "TEST_AGENCY", Version = "1.0" };
            dsd.AddName("en", "Test name");
            IDimensionMutableObject dimension = new DimensionMutableCore();
            dimension.ConceptRef = new StructureReferenceImpl("TEST_AGENCY", "TEST_CONCEPTS", "1.0", SdmxStructureEnumType.Concept, "TEST_DIM");
            dimension.Representation = new RepresentationMutableCore { Representation = new StructureReferenceImpl("TEST_AGENCY", "CL_TEST", "2.0", SdmxStructureEnumType.CodeList) };

            dsd.AddDimension(dimension);
            dsd.AddPrimaryMeasure(new StructureReferenceImpl("TEST_AGENCY", "TEST_CONCEPTS", "1.0", SdmxStructureEnumType.Concept, "OBS_VALUE"));

            var immutableDsd = dsd.ImmutableInstance;
            var dataflowMutable = new DataflowMutableCore { Id = "TEST_DF", AgencyId = "TEST_AGENCY", Version = "1.2" };
            dataflowMutable.AddName("en", "Test");
            dataflowMutable.DataStructureRef = immutableDsd.AsReference;
            var dataflow = dataflowMutable.ImmutableInstance;
           
           IDataQuery query = new DataQueryImpl(immutableDsd, null, DataQueryDetail.GetFromEnum(DataQueryDetailEnumType.Full),null,null, null, dataflow, "AllDimensions", new HashSet<IDataQuerySelection>(), null, null);
           Assert.AreEqual("AllDimensions", query.DimensionAtObservation);
        }
示例#2
0
        /// <summary>
        /// Builds the data structure object.
        /// </summary>
        /// <param name="dimension">The dimension.</param>
        /// <returns>
        /// The <see cref="IDataStructureObject"/>
        /// </returns>
        private static IDataStructureObject BuildDataStructureObject(IDimensionMutableObject dimension)
        {
            IDataStructureMutableObject dsd = new DataStructureMutableCore() { Id = "TEST_DSD", AgencyId = "TEST", Version = "1.0" };
            dsd.AddName("en", "TEST_DSD");
            dsd.AddPrimaryMeasure(new StructureReferenceImpl("TEST_AGENCY", "TEST_CONCEPTS", "1.0", SdmxStructureEnumType.Concept, "OBS_VALUE"));
            dsd.AddDimension(dimension);

            var immutable = dsd.ImmutableInstance;
            return immutable;
        }
        /// <summary>
        /// Builds the DSD.
        /// </summary>
        /// <returns>The DSD.</returns>
        private static IDataStructureObject BuildDsd(IMaintainableRefObject dsdRef, int dimensions)
        {
            IDataStructureMutableObject dsdMutableObject = new DataStructureMutableCore
                                                               {
                                                                   AgencyId = dsdRef.AgencyId,
                                                                   Id = dsdRef.MaintainableId,
                                                                   Version = dsdRef.HasVersion() ? dsdRef.Version : "1.0"
                                                               };
            dsdMutableObject.AddName("en", "Test data");

            // FREQ="Q" ADJUSTMENT="N" STS_ACTIVITY="A" 
            dsdMutableObject.AddDimension(
                new StructureReferenceImpl(agencyId: dsdRef.AgencyId, maintainableId: "TEST_CS", version: "1.0", targetStructureEnum: SdmxStructureEnumType.Concept, identfiableIds: "FREQ"),
                new StructureReferenceImpl("SDMX", "CL_FREQ", "1.0", SdmxStructureEnumType.CodeList));

            var groupMutableCore = new GroupMutableCore() { Id = "Sibling" };
            dsdMutableObject.AddGroup(groupMutableCore);
            for (int i = 0; i < dimensions; i++)
            {
                string id = "DIM" + i.ToString(CultureInfo.InvariantCulture);
                var dim = dsdMutableObject.AddDimension(
                    new StructureReferenceImpl(
                        agencyId: dsdRef.AgencyId,
                        maintainableId: "TEST_CS",
                        version: "1.0",
                        targetStructureEnum: SdmxStructureEnumType.Concept,
                        identfiableIds: id), codelistRef: new StructureReferenceImpl(dsdRef.AgencyId, "CL_" + id, "1.0", SdmxStructureEnumType.CodeList));
                groupMutableCore.DimensionRef.Add(id);
            }

            dsdMutableObject.AddDimension(
                new DimensionMutableCore
                    {
                        ConceptRef =
                            new StructureReferenceImpl(
                            agencyId: dsdRef.AgencyId,
                            maintainableId: "TEST_CS",
                            version: "1.0",
                            targetStructureEnum: SdmxStructureEnumType.Concept,
                            identfiableIds: "TIME_PERIOD"),
                        TimeDimension = true
                    });

            dsdMutableObject.AddPrimaryMeasure(
                new StructureReferenceImpl(agencyId: dsdRef.AgencyId, maintainableId: "TEST_CS", version: "1.0", targetStructureEnum: SdmxStructureEnumType.Concept, identfiableIds: "OBS_VALUE"));
            
            var obsStatus =
                dsdMutableObject.AddAttribute(
                    new StructureReferenceImpl(agencyId: dsdRef.AgencyId, maintainableId: "TEST_CS", version: "1.0", targetStructureEnum: SdmxStructureEnumType.Concept, identfiableIds: "OBS_STATUS"),
                    new StructureReferenceImpl(dsdRef.AgencyId, "CL_OBS_STATUS", "1.0", SdmxStructureEnumType.CodeList));
            obsStatus.AttachmentLevel = AttributeAttachmentLevel.Observation;
            obsStatus.AssignmentStatus = "Mandatory";

            var obsConf =
                dsdMutableObject.AddAttribute(
                    new StructureReferenceImpl(agencyId: dsdRef.AgencyId, maintainableId: "TEST_CS", version: "1.0", targetStructureEnum: SdmxStructureEnumType.Concept, identfiableIds: "OBS_CONF"),
                    new StructureReferenceImpl(dsdRef.AgencyId, "CL_OBS_CONF", "1.0", SdmxStructureEnumType.CodeList));
            obsConf.AttachmentLevel = AttributeAttachmentLevel.Observation;
            obsConf.AssignmentStatus = "Conditional";

            AddCodedAttribute(dsdMutableObject, "UNIT_MULT");
            AddCodedAttribute(dsdMutableObject, "UNIT");
            AddUnCodedAttribute(dsdMutableObject, "TITLE_COMPL");

            return dsdMutableObject.ImmutableInstance;
        }
        /// <summary>
        /// Builds the DSD.
        /// </summary>
        /// <returns>
        /// The <see cref="IDataStructureObject" />.
        /// </returns>
        private static IDataStructureObject BuildDsd()
        {
            IDataStructureMutableObject dsdMutableObject = new DataStructureMutableCore { AgencyId = "TEST", Id = "TEST_DSD", Version = "1.0" };
            dsdMutableObject.AddName("en", "Test data");

            // FREQ="Q" ADJUSTMENT="N" STS_ACTIVITY="A" 
            dsdMutableObject.AddDimension(
                new StructureReferenceImpl("TEST", "TEST_CS", "1.0", SdmxStructureEnumType.Concept, "FREQ"),
                new StructureReferenceImpl("SDMX", "CL_FREQ", "1.0", SdmxStructureEnumType.CodeList));
            dsdMutableObject.AddDimension(
                new StructureReferenceImpl("TEST", "TEST_CS", "1.0", SdmxStructureEnumType.Concept, "ADJUSTMENT"),
                new StructureReferenceImpl("SDMX", "CL_ADJUSTMENT", "1.0", SdmxStructureEnumType.CodeList));
            dsdMutableObject.AddDimension(
                new StructureReferenceImpl("TEST", "TEST_CS", "1.0", SdmxStructureEnumType.Concept, "STS_ACTIVITY"),
                new StructureReferenceImpl("STS", "CL_STS_ACTIVITY", "1.0", SdmxStructureEnumType.CodeList));
            dsdMutableObject.AddDimension(
                new DimensionMutableCore { ConceptRef = new StructureReferenceImpl("TEST", "TEST_CS", "1.0", SdmxStructureEnumType.Concept, "TIME_PERIOD"), TimeDimension = true });

            dsdMutableObject.AddPrimaryMeasure(new StructureReferenceImpl("TEST", "TEST_CS", "1.0", SdmxStructureEnumType.Concept, "OBS_VALUE"));

            var attributeMutableObject = dsdMutableObject.AddAttribute(
                new StructureReferenceImpl("TEST", "TEST_CS", "1.0", SdmxStructureEnumType.Concept, "DECIMALS"),
                new StructureReferenceImpl("STS", "CL_DECIMALS", "1.0", SdmxStructureEnumType.CodeList));
            attributeMutableObject.AttachmentLevel = AttributeAttachmentLevel.DimensionGroup;
            attributeMutableObject.DimensionReferences.AddAll(new[] { "FREQ", "ADJUSTMENT", "STS_ACTIVITY" });
            attributeMutableObject.AssignmentStatus = "Mandatory";
            return dsdMutableObject.ImmutableInstance;
        }
        /// <summary>
        /// Builds the data structure.
        /// </summary>
        /// <returns>
        /// The <see cref="IDataStructureObject" />.
        /// </returns>
        public IDataStructureObject BuildDataStructure()
        {
            IDataStructureMutableObject dsd = new DataStructureMutableCore();
            dsd.AgencyId = "SDMXSOURCE";
            dsd.Id = "WDI";
            dsd.AddName("en", "World Development Indicators");

            dsd.AddDimension(CreateConceptReference("COUNTRY"), CreateCodelistReference("CL_COUNTRY"));
            dsd.AddDimension(CreateConceptReference("INDICATOR"), CreateCodelistReference("CL_INDICATOR"));
            IDimensionMutableObject timeDim = dsd.AddDimension(CreateConceptReference("TIME"), null);
            timeDim.TimeDimension = true;
            dsd.AddPrimaryMeasure(CreateConceptReference("OBS_VALUE"));

            return dsd.ImmutableInstance;
        }