public bool CalculateDemandCurve(bool isElevation, bool showUserApproach, out string errorMessage) { try { DemandCurveData = new DemandCurveData(IsInternationalSystemOfUnits_IS); if (!FillDemandCurveData(isElevation, showUserApproach, out errorMessage)) { return(false); } if (!DemandCurveCalculationLibrary.DemandCurveCalculation(isElevation, showUserApproach, DemandCurveData, out errorMessage)) { return(false); } // output data in DemandCurveOutputData DemandCurveOutputData.NameValueUnitsDataTable.DataTable.Clear(); //data.BarometricPressure = truncit(data.BarometricPressure, 5); DemandCurveOutputData.NameValueUnitsDataTable.AddRow("KaV/L", DemandCurveData.KaV_L.ToString("F5"), string.Empty); return(true); } catch (Exception exception) { errorMessage = string.Format("Error in Demand Curve calculation. Please check your input values. Exception Message: {0}", exception.Message); return(false); } }
public DemandCurveViewModel(bool isDemo, bool isInternationalSystemOfUnits_IS_) { DemandCurveInputData = new DemandCurveInputData(isDemo, isInternationalSystemOfUnits_IS_); DemandCurveOutputData = new DemandCurveOutputData(isInternationalSystemOfUnits_IS_); DemandCurveData = new DemandCurveData(isInternationalSystemOfUnits_IS_); DemandCurveCalculationLibrary = new DemandCurveCalculationLibrary(); IsInternationalSystemOfUnits_IS = isInternationalSystemOfUnits_IS_; IsDemo = isDemo; }
private void CalculateDemandCurve() { try { DemandCurveCalculationLibrary demandCurveCalculationLibrary = new DemandCurveCalculationLibrary(); //DemandCurveData = new DemandCurveData(IsInternationalSystemOfUnits_IS_); DemandCurveChart.ChartAreas[0].AxisX.Minimum = 0.1; DemandCurveChart.ChartAreas[0].AxisX.Maximum = 10; //DemandCurveChart.ChartAreas[0].AxisX.IsLogarithmic = true; //DemandCurveChart.ChartAreas[0].AxisX.MajorTickMark.LineColor = Color.FromArgb(0xCC, 0xCC, 0xCC); //DemandCurveChart.ChartAreas[0].AxisX.LineColor = Color.FromArgb(0x77, 0x77, 0x77); //DemandCurveChart.ChartAreas[0].AxisX.TitleForeColor = Color.FromArgb(0x77, 0x77, 0x77); //DemandCurveChart.ChartAreas[0].AxisX.Title = "KaV/L"; ////m_wndGraph.GetAxis().GetLeft().GetGridPen().SetStyle(psSolid); ////m_wndGraph.GetAxis().GetLeft().GetGridPen().SetWidth(1); ////m_wndGraph.GetAxis().GetTop().GetLabels().SetAngle(90); ////m_wndGraph.GetAxis().GetLeft().GetLabels().GetFont().SetSize(6); ////m_wndGraph.GetAxis().GetLeft().SetAutomaticMinimum(true); ////m_wndGraph.GetAxis().GetLeft().SetAutomaticMaximum(true); ////m_wndGraph.GetAxis().GetLeft().GetTitle().GetFont().SetSize(10); ////m_wndGraph.GetAxis().GetLeft().GetTitle().GetFont().SetBold(true); //DemandCurveChart.ChartAreas[0].AxisY.Minimum = 0.1; //DemandCurveChart.ChartAreas[0].AxisY.Maximum = 10; //DemandCurveChart.ChartAreas[0].AxisY.IsLogarithmic = true; //DemandCurveChart.ChartAreas[0].AxisY.MajorTickMark.LineColor = Color.FromArgb(0xCC, 0xCC, 0xCC); //DemandCurveChart.ChartAreas[0].AxisY.LineColor = Color.FromArgb(0x77, 0x77, 0x77); //DemandCurveChart.ChartAreas[0].AxisY.TitleForeColor = Color.FromArgb(0x77, 0x77, 0x77); //DemandCurveChart.ChartAreas[0].AxisY.Title = "L/G"; ////clear data set //if (DemandCurveGridView.DataSource != null) //{ // DemandCurveGridView.DataSource = null; //} DemandCurveChart.Series.Clear(); for (int i = 1; i <= INDEX_KAVL; i++) { //Series series = //DemandCurveChart.Series.Add(string.Format("Series{0}", i)); //series.ChartType = SeriesChartType.Line; //series.XValueMember = string.Format("L/G-{0}", i); //series.YValueMembers = string.Format("Y{0}", i); } string errorMessage = string.Empty; if (DemandCurveViewModel.CalculateDemandCurve(DemandCurve_ElevationRadio.Checked, DemandCurve_KavLRadio.Checked, out errorMessage)) { // AxisX, AxisY, AxisX2 and AxisY2 //Primary X-Axis Bottom horizontal axis. //Secondary X-Axis Top horizontal axis. //Primary Y-Axis Left vertical axis. //Secondary Y-Axis Right vertical axis. // if (DemandCurveData.DataTable != null ) //&& //DemandCurveData.DataTable.Rows != null && //DemandCurveData.DataTable.Rows.Count > 0) // { // ChartArea chartArea1 = new ChartArea(); // chartArea1.AxisX.IsLabelAutoFit = false; // //chartArea1.AxisX.IsLogarithmic = true; // chartArea1.AxisX.LineColor = System.Drawing.Color.FromArgb(((int)(((byte)(119)))), ((int)(((byte)(119)))), ((int)(((byte)(119))))); // chartArea1.AxisX.MajorTickMark.Interval = 0.75D; // chartArea1.AxisX.MajorTickMark.LineColor = System.Drawing.Color.FromArgb(((int)(((byte)(204)))), ((int)(((byte)(204)))), ((int)(((byte)(204))))); // chartArea1.AxisX.Maximum = 5D; // chartArea1.AxisX.Minimum = 0.1D; // chartArea1.AxisX.MinorTickMark.Enabled = true; // chartArea1.AxisX.MajorTickMark.Enabled = true; // chartArea1.AxisX.MinorTickMark.Interval = 0.75D; // chartArea1.AxisX.MinorTickMark.LineColor = System.Drawing.Color.FromArgb(((int)(((byte)(204)))), ((int)(((byte)(204)))), ((int)(((byte)(204))))); // chartArea1.AxisX.Title = "L/G"; // chartArea1.AxisX.TitleFont = new System.Drawing.Font("Microsoft Sans Serif", 8F, System.Drawing.FontStyle.Bold); // //chartArea1.AxisX2.IsLogarithmic = true; // //chartArea1.AxisX2.LineColor = System.Drawing.Color.FromArgb(((int)(((byte)(119)))), ((int)(((byte)(119)))), ((int)(((byte)(119))))); // //chartArea1.AxisX2.Maximum = 10D; // //chartArea1.AxisX2.Minimum = 0.1D; // //chartArea1.AxisX2.MinorTickMark.Enabled = true; // //chartArea1.AxisX2.MinorTickMark.LineColor = System.Drawing.Color.FromArgb(((int)(((byte)(204)))), ((int)(((byte)(204)))), ((int)(((byte)(204))))); // //chartArea1.AxisY.IsLogarithmic = true; // chartArea1.AxisY.LineColor = System.Drawing.Color.FromArgb(((int)(((byte)(119)))), ((int)(((byte)(119)))), ((int)(((byte)(119))))); // chartArea1.AxisY.MajorGrid.Interval = 0.75D; // chartArea1.AxisY.MajorTickMark.Interval = 0.5D; // chartArea1.AxisY.Maximum = 10D; // chartArea1.AxisY.Minimum = 0.1D; // chartArea1.AxisY.MinorTickMark.Enabled = true; // chartArea1.AxisY.MinorTickMark.Interval = 0.75D; // chartArea1.AxisY.MinorTickMark.LineColor = System.Drawing.Color.FromArgb(((int)(((byte)(204)))), ((int)(((byte)(204)))), ((int)(((byte)(204))))); // chartArea1.AxisY.Title = "KaV/L"; // chartArea1.AxisY.TitleFont = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Bold); // //chartArea1.AxisY2.IsLogarithmic = true; // //chartArea1.AxisY2.LineColor = System.Drawing.Color.FromArgb(((int)(((byte)(119)))), ((int)(((byte)(119)))), ((int)(((byte)(119))))); // //chartArea1.AxisY2.Maximum = 10D; // //chartArea1.AxisY2.Minimum = 0.1D; // //chartArea1.AxisY2.MinorTickMark.Enabled = true; // //chartArea1.AxisY2.MinorTickMark.LineColor = System.Drawing.Color.FromArgb(((int)(((byte)(204)))), ((int)(((byte)(204)))), ((int)(((byte)(204))))); // chartArea1.Name = "ChartArea1"; // DemandCurveChart.ChartAreas.Clear(); // DemandCurveChart.ChartAreas.Add(chartArea1); // DemandCurveChart.Name = "DemandCurveChart"; // DemandCurveChart.ChartAreas[0].AxisX.Minimum = 0.1; // DemandCurveChart.ChartAreas[0].AxisX.IsLogarithmic = true; // DemandCurveChart.ChartAreas[0].AxisX.Maximum = 5; // ////DemandCurveChart.ChartAreas[0].AxisX.MajorTickMark.LineColor = Color.FromArgb(0xCC, 0xCC, 0xCC); // ////DemandCurveChart.ChartAreas[0].AxisX.LineColor = Color.FromArgb(0x77, 0x77, 0x77); // ////DemandCurveChart.ChartAreas[0].AxisX.TitleForeColor = Color.FromArgb(0x77, 0x77, 0x77); // DemandCurveChart.ChartAreas[0].AxisY.Title = "KaV/L"; // ////m_wndGraph.GetAxis().GetLeft().GetGridPen().SetStyle(psSolid); // ////m_wndGraph.GetAxis().GetLeft().GetGridPen().SetWidth(1); // ////m_wndGraph.GetAxis().GetTop().GetLabels().SetAngle(90); // ////m_wndGraph.GetAxis().GetLeft().GetLabels().GetFont().SetSize(6); // ////m_wndGraph.GetAxis().GetLeft().SetAutomaticMinimum(true); // ////m_wndGraph.GetAxis().GetLeft().SetAutomaticMaximum(true); // ////m_wndGraph.GetAxis().GetLeft().GetTitle().GetFont().SetSize(10); // ////m_wndGraph.GetAxis().GetLeft().GetTitle().GetFont().SetBold(true); // DemandCurveChart.ChartAreas[0].AxisY.Minimum = 0.1; // //DemandCurveChart.ChartAreas[0].AxisY.Maximum = 5; // DemandCurveChart.ChartAreas[0].AxisY.IsLogarithmic = true; // //DemandCurveChart.Legends.Clear(); // //Legend legend = new Legend(); // //DemandCurveChart.Legends.Add(legend); // DemandCurveChart.Legends[0].Title = "Approach"; // for (int i = 0; i < demandCurveCalculationLibrary.InitialApproachXValues.Length; i++) // { // if(demandCurveCalculationLibrary.ApproachInRange[i]) // { // Series series = new Series(); // series.ChartArea = "ChartArea1"; // series.ChartType = SeriesChartType.Line; // //series.Color = System.Drawing.Color.Yellow; // series.Name = string.Format("{0}", demandCurveCalculationLibrary.InitialApproachXValues[i]); // series.XValueMember = string.Format("L/G-{0}", demandCurveCalculationLibrary.InitialApproachXValues[i]); // series.YValueMembers = string.Format("kaVL-{0}", demandCurveCalculationLibrary.InitialApproachXValues[i]); // DemandCurveChart.Series.Add(series); // } // } //// if (Display_COEF) // if (true) // { // //Series series = new Series(); // //series.ChartArea = "ChartArea1"; // //series.ChartType = SeriesChartType.Line; // //series.Color = Color.Yellow; // //series.Name = "COEF"; // //series.XValueMember = "L/G-COEF"; // //series.YValueMembers = "kaVL-COEF"; // //DemandCurveChart.Series.Add(series); // } // DemandCurveChart.DataSource = DemandCurveData.DataTable; // BindingSource SBind = new BindingSource(); // SBind.DataSource = DemandCurveData.DataTable; // dataGridView1.AutoGenerateColumns = true; // dataGridView1.DataSource = DemandCurveData.DataTable; // dataGridView1.DataSource = SBind; // dataGridView1.Refresh(); // DemandCurveChart.DataBind(); } else { //DemandCurveChart.ChartAreas[0].AxisX.IsLogarithmic = false; //DemandCurveChart.ChartAreas[0].AxisY.IsLogarithmic = false; } } catch (Exception exception) { MessageBox.Show(string.Format("Error in Demand Curve calculation. Please check your input values. Exception Message: {0}", exception.Message), "Demand Curve Calculation Error"); } }