using System; using System.Globalization; namespace Raytheon.Common.PdelWriter { public static class PdelDataFormatter { #region Public Members /// /// Formats the specified measurement data type. /// /// The measured value. /// Returns a properly formatted string. public static string Format(string measuredValue) { string prefix = string.Empty; string extension = string.Empty; double value; DateTime datetime = default(DateTime); if (double.TryParse(measuredValue, out value)) { prefix = "R"; if (measuredValue.IndexOf('.') != -1) { extension = measuredValue.Substring(measuredValue.IndexOf('.') + 1).Length.ToString(CultureInfo.CurrentCulture); } else { // If we don't have a decimal point it must have converted to an integer value. prefix = "I"; extension = measuredValue.Length.ToString(CultureInfo.CurrentCulture); } } else if (DateTime.TryParse(measuredValue, out datetime)) { prefix = "T"; extension = string.Empty; } else { try { int dummy = Convert.ToInt32(measuredValue, 16); prefix = "H"; extension = measuredValue.Length.ToString(CultureInfo.CurrentCulture); } catch (Exception) { prefix = "S"; extension = measuredValue.Length.ToString(CultureInfo.CurrentCulture); } } return prefix + extension; } /// /// Determines whether [is null or empty] [the specified units]. /// /// The units. /// Returns a string value for the units. public static string IsNullOrEmpty(this string units) { var returnValue = "NONE"; if (!string.IsNullOrEmpty(units)) { returnValue = units; } return returnValue; } #endregion } }