/// <summary> /// Populates this <see cref="Emotion"/> instance from the data in the XML. /// </summary> /// /// <param name="typeSpecificXml"> /// The XML to get the emotion data from. /// </param> /// /// <exception cref="InvalidOperationException"> /// The first node in <paramref name="typeSpecificXml"/> is not /// a emotion node. /// </exception> /// protected override void ParseXml(IXPathNavigable typeSpecificXml) { XPathNavigator emotionNav = typeSpecificXml.CreateNavigator().SelectSingleNode("emotion"); Validator.ThrowInvalidIfNull(emotionNav, "EmotionUnexpectedNode"); _when = new HealthServiceDateTime(); _when.ParseXml(emotionNav.SelectSingleNode("when")); XPathNavigator moodNav = emotionNav.SelectSingleNode("mood"); if (moodNav != null) { _mood = (Mood)moodNav.ValueAsInt; } XPathNavigator stressNav = emotionNav.SelectSingleNode("stress"); if (stressNav != null) { _stress = (RelativeRating)stressNav.ValueAsInt; } XPathNavigator wellbeingNav = emotionNav.SelectSingleNode("wellbeing"); if (wellbeingNav != null) { _wellbeing = (Wellbeing)wellbeingNav.ValueAsInt; } }
/// <summary> /// Populates the data for the length from the XML. /// </summary> /// /// <param name="navigator"> /// The XML node representing the length. /// </param> /// /// <exception cref="ArgumentNullException"> /// The <paramref name="navigator"/> parameter is <b>null</b>. /// </exception> /// public override void ParseXml(XPathNavigator navigator) { Validator.ThrowIfNavigatorNull(navigator); XPathNavigator modeNav = navigator.SelectSingleNode("mode"); _mode.Clear(); if (modeNav != null) { _mode.ParseXml(modeNav); } XPathNavigator distanceNav = navigator.SelectSingleNode("distance"); if (distanceNav != null) { _distance = new Length(); _distance.ParseXml(distanceNav); } _minutes = XPathHelper.GetOptNavValueAsDouble(navigator, "minutes"); int? intensity = XPathHelper.GetOptNavValueAsInt(navigator, "intensity"); if (intensity != null) { _intensity = (RelativeRating)((int)intensity); } _peakHr = XPathHelper.GetOptNavValueAsInt(navigator, "peak-heartrate"); _averageHr = XPathHelper.GetOptNavValueAsInt(navigator, "avg-heartrate"); _minHr = XPathHelper.GetOptNavValueAsInt(navigator, "min-heartrate"); _energy = XPathHelper.GetOptNavValueAsDouble(navigator, "energy"); _energyFromFat = XPathHelper.GetOptNavValueAsDouble(navigator, "energy-from-fat"); _peakSpeed = XPathHelper.GetOptNavValue<SpeedMeasurement>( navigator, "peak-speed"); _averageSpeed = XPathHelper.GetOptNavValue<SpeedMeasurement>( navigator, "avg-speed"); _minSpeed = XPathHelper.GetOptNavValue<SpeedMeasurement>( navigator, "min-speed"); _peakPace = XPathHelper.GetOptNavValue<PaceMeasurement>( navigator, "peak-pace"); _averagePace = XPathHelper.GetOptNavValue<PaceMeasurement>( navigator, "avg-pace"); _minPace = XPathHelper.GetOptNavValue<PaceMeasurement>( navigator, "min-pace"); _peakPower = XPathHelper.GetOptNavValue<PowerMeasurement>( navigator, "peak-power"); _averagePower = XPathHelper.GetOptNavValue<PowerMeasurement>( navigator, "avg-power"); _minPower = XPathHelper.GetOptNavValue<PowerMeasurement>( navigator, "min-power"); _peakTorque = XPathHelper.GetOptNavValue<TorqueMeasurement>( navigator, "peak-torque"); _averageTorque = XPathHelper.GetOptNavValue<TorqueMeasurement>( navigator, "avg-torque"); _minTorque = XPathHelper.GetOptNavValue<TorqueMeasurement>( navigator, "min-torque"); _leftRightBalance = XPathHelper.GetOptNavValueAsDouble( navigator, "left-right-balance"); _peakCadence = XPathHelper.GetOptNavValueAsDouble(navigator, "peak-cadence"); _averageCadence = XPathHelper.GetOptNavValueAsDouble(navigator, "avg-cadence"); _minCadence = XPathHelper.GetOptNavValueAsDouble(navigator, "min-cadence"); _peakTemperature = XPathHelper.GetOptNavValue<TemperatureMeasurement>( navigator, "peak-temperature"); _averageTemperature = XPathHelper.GetOptNavValue<TemperatureMeasurement>( navigator, "avg-temperature"); _minTemperature = XPathHelper.GetOptNavValue<TemperatureMeasurement>( navigator, "min-temperature"); _peakAltitude = XPathHelper.GetOptNavValue<AltitudeMeasurement>( navigator, "peak-altitude"); _averageAltitude = XPathHelper.GetOptNavValue<AltitudeMeasurement>( navigator, "avg-altitude"); _minAltitude = XPathHelper.GetOptNavValue<AltitudeMeasurement>( navigator, "min-altitude"); _elevationGain = XPathHelper.GetOptNavValue<Length>( navigator, "elevation-gain"); _elevationLoss = XPathHelper.GetOptNavValue<Length>( navigator, "elevation-loss"); _numberOfSteps = XPathHelper.GetOptNavValueAsInt( navigator, "number-of-steps"); _numberOfAerobicSteps = XPathHelper.GetOptNavValueAsInt( navigator, "number-of-aerobic-steps"); _aerobicStepMinutes = XPathHelper.GetOptNavValueAsDouble( navigator, "aerobic-step-minutes"); }