private void ConvertTemperature() { ITemperatureType inputType = GetTemperatureType(inputGroupBox); inputSymbolLabel.Text = inputType.Symbol; ITemperatureType outputType = GetTemperatureType(outputGroupBox); string inputTextBoxText = inputTextBox.Text; if (double.TryParse(inputTextBoxText, out double inputTextBoxData)) { double outputTypeData = Math.Round(TemperatureConverter.Convert(inputTextBoxData, inputType, outputType), 2); outputLabel.Text = string.Format("{0} {1}", outputTypeData, outputType.Symbol); } else { outputLabel.Text = outputType.Symbol; } }
private ITemperatureType GetTemperatureType(GroupBox groupBox) { foreach (Control control in groupBox.Controls) { if ((control as RadioButton).Checked) { string radioButtonName = control.Name; ITemperatureType type = inputTypes.FirstOrDefault(x => string.Concat(groupBox.Name, x.Name) == radioButtonName); if (!Equals(type, null)) { return(type); } return(outputTypes.FirstOrDefault(x => string.Concat(groupBox.Name, x.Name) == radioButtonName)); } } return(null); }
public static double Convert(double inputData, ITemperatureType inputType, ITemperatureType outputType) { double celsius = inputType.ToCelsius(inputData); return(outputType.FromCelsius(celsius)); }