public PsychrometricsViewModel(bool isDemo, bool isInternationalSystemOfUnits_IS_)
 {
     IsInternationalSystemOfUnits_IS_ = isInternationalSystemOfUnits_IS_;
     IsDemo = isDemo;
     PsychrometricsInputData          = new PsychrometricsInputData(IsDemo, IsInternationalSystemOfUnits_IS_);
     PsychrometricsOutputData         = new PsychrometricsOutputData(IsInternationalSystemOfUnits_IS_);
     PsychrometricsCalculationLibrary = new PsychrometricsCalculationLibrary();
     PsychrometricsData = new PsychrometricsData();
 }
        public bool CalculatePsychrometrics(bool isElevation, out string errorMessage)
        {
            try
            {
                if (!FillPsychrometricsData(isElevation, out errorMessage))
                {
                    return(false);
                }

                if (!PsychrometricsCalculationLibrary.PsychrometricsCalculation(PsychrometricsData, out errorMessage))
                {
                    return(false);
                }

                PsychrometricsOutputData.FillDataTable(PsychrometricsData);

                return(true);
            }
            catch (Exception exception)
            {
                errorMessage = string.Format("Error in Psychrometrics calculation. Please check your input values. Exception Message: {0}", exception.Message);
                return(false);
            }
        }
        private void CalculatePsychrometrics()
        {
            try
            {
                PsychrometricsData = new PsychrometricsData();

                // clear data set
                if (dataGridView1.DataSource != null)
                {
                    dataGridView1.DataSource = null;
                }

                DataTable table = null;

                string message = string.Empty;

                if (PyschmetricsElevationRadio.Checked)
                {
                    if (!PsychrometricsInputData.ElevationDataValue.UpdateValue(Psychrometrics_Elevation_Value.Text, out message))
                    {
                        MessageBox.Show(message);
                        return;
                    }
                }
                else
                {
                    if (!PsychrometricsInputData.BarometricPressureDataValue.UpdateValue(Psychrometrics_Elevation_Value.Text, out message))
                    {
                        MessageBox.Show(message);
                        return;
                    }
                }

                if (Psychrometrics_DBT_RH.Checked)
                {
                    if (!PsychrometricsInputData.DryBlubTemperatureDataValue.UpdateValue(Psychrometrics_DBT_Value.Text, out message))
                    {
                        MessageBox.Show(message);
                        return;
                    }
                    if (!PsychrometricsInputData.RelativeHumitityDataValue.UpdateValue(Psychrometrics_WBT_Value.Text, out message))
                    {
                        MessageBox.Show(message);
                        return;
                    }
                }
                else if (Psychrometrics_Enthalpy.Checked)
                {
                    if (!PsychrometricsInputData.EnthalpyDataValue.UpdateValue(Psychrometrics_DBT_Value.Text, out message))
                    {
                        MessageBox.Show(message);
                        return;
                    }
                }
                else
                {
                    if (!PsychrometricsInputData.DryBlubTemperatureDataValue.UpdateValue(Psychrometrics_DBT_Value.Text, out message))
                    {
                        MessageBox.Show(message);
                        return;
                    }
                    if (!PsychrometricsInputData.WetBlubTemperatureDataValue.UpdateValue(Psychrometrics_WBT_Value.Text, out message))
                    {
                        MessageBox.Show(message);
                        return;
                    }
                    if (PsychrometricsInputData.DryBlubTemperatureDataValue.Current < PsychrometricsInputData.WetBlubTemperatureDataValue.Current)
                    {
                        MessageBox.Show("The Dry Blub Temperature value must be greater than the Wet Blub Temperature value");
                        return;
                    }
                }

                if (PyschmetricsElevationRadio.Checked)
                {
                    PsychrometricsData.Elevation = PsychrometricsInputData.ElevationDataValue.Current;
                }
                else
                {
                    PsychrometricsData.BarometricPressure = PsychrometricsInputData.BarometricPressureDataValue.Current;
                }

                PsychrometricsData.IsElevation = PyschmetricsElevationRadio.Checked;
                PsychrometricsData.SetInternationalSystemOfUnits_IS_(InternationalSystemOfUnits_IS_.Checked);

                if (Psychrometrics_WBT_DBT.Checked)
                {
                    PsychrometricsData.CalculationType      = CalculationType.Psychrometrics_WBT_DBT;
                    PsychrometricsInputData.CalculationType = CalculationType.Psychrometrics_WBT_DBT;
                    PsychrometricsData.TemperatureDryBulb   = PsychrometricsInputData.DryBlubTemperatureDataValue.Current;
                    PsychrometricsData.TemperatureWetBulb   = PsychrometricsInputData.WetBlubTemperatureDataValue.Current;
                }
                else if (Psychrometrics_DBT_RH.Checked)
                {
                    PsychrometricsData.CalculationType      = CalculationType.Psychrometrics_DBT_RH;
                    PsychrometricsInputData.CalculationType = CalculationType.Psychrometrics_DBT_RH;
                    PsychrometricsData.RelativeHumidity     = PsychrometricsInputData.RelativeHumitityDataValue.Current;
                    PsychrometricsData.TemperatureDryBulb   = PsychrometricsInputData.DryBlubTemperatureDataValue.Current;
                }
                else if (Psychrometrics_Enthalpy.Checked)
                {
                    PsychrometricsData.CalculationType      = CalculationType.Psychrometrics_Enthalpy;
                    PsychrometricsInputData.CalculationType = CalculationType.Psychrometrics_Enthalpy;
                    PsychrometricsData.Enthalpy             = PsychrometricsInputData.EnthalpyDataValue.Current;
                }

                table = PsychrometricsCalculationLibrary.PsychrometricsCalculation(PsychrometricsData);

                if (table != null)
                {
                    // Create a DataView using the DataTable.
                    DataView view = new DataView(table);

                    // Set a DataGrid control's DataSource to the DataView.
                    dataGridView1.DataSource = view;
                }
            }
            catch (Exception exception)
            {
                MessageBox.Show(string.Format("Error in calculation. Please check your input values. Exception Message: {0}", exception.Message), "Psychrometrics Calculation Error");
            }
        }