Beispiel #1
0
        private void NewAverageTemperatureUpdate(AverageTemperature averageTemperature)
        {
            var newValue = averageTemperature.Value;

            if (_currenTemperatureUnit == TemperatureUnit.Fahrenheit)
            {
                newValue = UnitConverter.IntoFahrenheit(newValue);
            }
            AverageTemperature = newValue.ToString("F");
        }
Beispiel #2
0
 public Task PrintAverage(AverageTemperature data)
 {
     if (data.Value.HasValue)
     {
         PrintAverage(data.Value);
     }
     else
     {
         PrintAverage("Unknown or outdated");
     }
     return(Done);
 }
Beispiel #3
0
        public async Task <AverageTemperature> GetAverageTemperatureForPastHourAsync()
        {
            LastHourTemperature temperatureReponse = await _sMHIGateway.GetTemperatureDataForThePastHourAsync();

            // We discard data for stations that are null
            // If SMHI has returned multiple values for a station, we grab the first one.
            // Unclear what it would mean if SMHI returned more than one value
            List <LastHourTemperature.Value> nonNullValueObjsForEachStation = temperatureReponse.station
                                                                              .Where(s => s.value != null)
                                                                              .Select(s => s.value.FirstOrDefault()).ToList();

            // List contains one temperature for each station that had data
            List <string> temperatureForEachStation = nonNullValueObjsForEachStation
                                                      .Where(v => !string.IsNullOrWhiteSpace(v.value))
                                                      .Select(v => v.value).ToList();

            List <double> allTemperaturesForSweden = new List <double>();

            // Temperature is received as a string, so we can convert it to double
            // We discard data that fails to convert
            foreach (string temperatureAsStr in temperatureForEachStation)
            {
                double temperatureAsDouble;
                if (double.TryParse(temperatureAsStr, out temperatureAsDouble))
                {
                    allTemperaturesForSweden.Add(temperatureAsDouble);
                }
            }

            if (!allTemperaturesForSweden.Any())
            {
                throw new ExternalException("Failed to retrieve any data.");
            }

            AverageTemperature temperatureData = new AverageTemperature()
            {
                Average = allTemperaturesForSweden.Average()
            };

            return(temperatureData);
        }
Beispiel #4
0
 public override string ToString()
 {
     return(string.Format(
                "Total GPS fixes:\t{0}" + NewLine() +
                "Lost GPS fixes:\t\t{1}" + NewLine() +
                "Speed MAX:\t\t{2} Km/h" + NewLine() +
                "Speed MIN:\t\t{3} Km/h" + NewLine() +
                "Speed AVG:\t\t{4} Km/h" + NewLine() +
                "Altitude MAX:\t\t{5} meters" + NewLine() +
                "Altitude MIN:\t\t{6} meters" + NewLine() +
                "Temperature MAX:\t{7} °C" + NewLine() +
                "Temperature MIN:\t{8} °C" + NewLine() +
                "Temperature AVG:\t{9} °C" + NewLine() +
                "Heart rate MAX:\t\t{10} bpm" + NewLine() +
                "Heart rate MIN:\t\t{11} bpm" + NewLine() +
                "Heart rate AVG:\t\t{12} bpm" + NewLine() +
                "Time total:\t\t{13}" + NewLine() +
                "Time moving:\t\t{14}" + NewLine() +
                "Distance:\t\t{15} Km" + NewLine(),
                _fixCounter.FixesTotalNumber,
                _fixCounter.FixesLostNumber,
                MaxSpeed.ToString("0.0"),
                MinSpeed.ToString("0.0"),
                AverageSpeed.ToString("0.0"),
                MaxAltitude,
                MinAltitude,
                MaxTemperature.ToString("0.0"),
                MinTemperature.ToString("0.0"),
                AverageTemperature.ToString("0.0"),
                MaxHeartRate,
                MinHeartRate,
                AverageHeartRate,
                FormatTime(TotalTime),
                FormatTime(TotalTripTime),
                TotalTripDistance.ToString("0.0")));
 }