/// <summary> /// Attempt to convert between feet/inches and cm /// </summary> /// <param name="sHeight"></param> /// <returns></returns> public static string ConvertHeight(string sHeight) { if (!String.IsNullOrEmpty(sHeight)) { sHeight = UnitConversion.CleanHeight(sHeight); if (sHeight.Contains(UnitConversion.sFootUnit)) { sHeight = sHeight.Replace(UnitConversion.sFootUnit, "|"); sHeight = sHeight.Replace(UnitConversion.sInchUnit, "|"); string[] sParts = sHeight.Split('|'); double? dFeet = null; double? dInches = null; double dFeetParsed; double dInchesParsed; if (sParts.Length >= 2 && double.TryParse(sParts[0].Trim(), out dFeetParsed)) { dFeet = dFeetParsed; } if (sParts.Length >= 4 && double.TryParse(sParts[2].Trim(), out dInchesParsed)) { dInches = dInchesParsed; } ; sHeight = UnitConversion.FtToCm(UnitConversion.CalculateFt(dFeet ?? 0, dInches ?? 0)).ToString() + " " + UnitConversion.sCentimeterUnit; } else if (sHeight.Contains(UnitConversion.sCentimeterUnit)) { sHeight = sHeight.Replace(UnitConversion.sCentimeterUnit, "|"); string[] sParts = sHeight.Split('|'); double? dCentimeters = null; double dCentimetersParsed; if (sParts.Length >= 2 && double.TryParse(sParts[0].Trim(), out dCentimetersParsed)) { dCentimeters = dCentimetersParsed; } int?iFeet; int?iInches; if (UnitConversion.CmToFt(dCentimeters, out iFeet, out iInches)) { sHeight = (iFeet != null) ? iFeet.ToString() + " " + UnitConversion.sFootUnit : ""; sHeight += (iInches != null) ? " " + iInches.ToString() + " " + UnitConversion.sInchUnit : ""; sHeight = sHeight.Trim(); } else { sHeight = ""; } } else { sHeight = ""; } } else { sHeight = ""; } return(sHeight); }