/// <summary> /// Write a primary measure observation /// </summary> /// <param name="row"> /// The map between components and their values /// </param> /// <param name="info"> /// The current Data Retrieval state /// </param> /// <returns> /// The number of observations stored. /// </returns> protected override int WriteObservation(MappedXsValues row, DataRetrievalInfoXS info) { if (row.MeasureDimensionValue == null) { throw new InvalidOperationException("MappedXsValues.MeasureDimension is null"); } string tag; if (info.XSMeasureCodeToConcept.TryGetValue(row.MeasureDimensionValue.Value, out tag)) { return WriteObservation(row, tag, row.PrimaryMeasureValue.Value, info); } throw new InvalidOperationException( string.Format(CultureInfo.InvariantCulture, "Unknown measure code {0}", row.MeasureDimensionValue.Value)); }
/// <summary> /// Write a primary measure observation /// </summary> /// <param name="row"> /// The map between components and their values /// </param> /// <param name="info"> /// The current Data Retrieval state /// </param> /// <returns> /// The number of observations stored. /// </returns> protected override int WriteObservation(MappedXsValues row, DataRetrievalInfoXS info) { return WriteObservation(row, row.PrimaryMeasureValue.Key.Id, row.PrimaryMeasureValue.Value, info); }
/// <summary> /// Write a primary measure observation /// </summary> /// <param name="row"> /// The map between components and their values /// </param> /// <param name="info"> /// The current Data Retrieval state /// </param> /// <param name="limit"> /// The limit. /// </param> /// <returns> /// The number of observations stored. /// </returns> private static int WriteObservation(MappedXsValues row, DataRetrievalInfoXS info, int limit) { int maxMeasures = Math.Min(info.CrossSectionalMeasureMappings.Count, limit); int count = 0; for (var i = 0; i < maxMeasures; i++) { var crossSectionalMeasureMapping = info.CrossSectionalMeasureMappings[i]; var xsComponent = crossSectionalMeasureMapping.Components[0]; count += WriteObservation(row, xsComponent.Id, row.GetXSMeasureValue(xsComponent), info); } return count; }
/// <summary> /// Write a primary measure observation /// </summary> /// <param name="row"> /// The map between components and their values /// </param> /// <param name="info"> /// The current Data Retrieval state /// </param> /// <returns> /// The number of observations stored. /// </returns> protected override int WriteObservation(MappedXsValues row, DataRetrievalInfoXS info) { int count = 0; for (var i = 0; i < info.CrossSectionalMeasureMappings.Count; i++) { var crossSectionalMeasureMapping = info.CrossSectionalMeasureMappings[i]; var xsComponent = crossSectionalMeasureMapping.Components[0]; count += WriteObservation(row, xsComponent.Id, row.GetXSMeasureValue(xsComponent), info); } return count; }