Exemplo n.º 1
0
 /// <summary>
 /// Closes FuelTanksMeasurements stream and sets IsStreamOpen to "false".
 /// </summary>
 private void CloseFuelTanksMeasurementsStream()
 {
     if (IsStreamOpen)
     {
         FuelTankMeasurementsStreamReader.Close();
         FuelTankMeasurementsStreamReader.Dispose();
         IsStreamOpen = false;
     }
 }
Exemplo n.º 2
0
        /// <summary>
        /// Method used to retrieve next measurement value from dataset.
        /// </summary>
        /// <returns>KeyValuePair with key being tank id and value being measurement value.</returns>
        /// <exception cref="InvalidDataException">Thrown when read lind from dataset cannot be parsed by regex,
        /// basically meaning that this particular line is incorrectly saved into file.</exception>
        public KeyValuePair <int, double> GetNextMeasurementValue()
        {
            if (!IsStreamOpen)
            {
                OpenFuelTankMeasurementsStream();
            }
            if (FuelTankMeasurementsStreamReader.EndOfStream)
            {
                CloseFuelTanksMeasurementsStream();
                OpenFuelTankMeasurementsStream();
            }
            var dataLine = FuelTankMeasurementsStreamReader.ReadLine();
            var values   = FuelTankCSVRegex.Match(dataLine);

            if (values.Success)
            {
                int    fuelTankId          = int.Parse(values.Groups[1].Value);
                double fuelTankMeasurement = double.Parse(values.Groups[2].Value.Replace(',', '.'));
                return(new KeyValuePair <int, double>(fuelTankId, fuelTankMeasurement));
            }

            throw new InvalidDataException("Data in csv file did not meet requiriments: REGEX - @\"(\\d+),\"?(\\d+,?\\d*)\"?\")");
        }