public async Task <IActionResult> OnGetAsync(int?id) { if (id == null) { return(NotFound()); } BarTypes = await _context.BarTypes.FirstOrDefaultAsync(m => m.BarTypeKey == id); if (BarTypes == null) { return(NotFound()); } return(Page()); }
public async Task <IActionResult> OnPostAsync(int?id) { if (id == null) { return(NotFound()); } BarTypes = await _context.BarTypes.FindAsync(id); if (BarTypes != null) { _context.BarTypes.Remove(BarTypes); await _context.SaveChangesAsync(); } return(RedirectToPage("./Index")); }
private object GetXAxisLabel(BarTypes eBarType, SeriesType eSeriesType) { string sBarType = string.Empty; switch (eBarType) { case BarTypes.Area: sBarType = "Total\\nArea"; break; case BarTypes.Volume: sBarType = "Total\\nVolume"; break; case BarTypes.Vertical: sBarType = "Average\\nDepth"; break; } string sSeriesType = string.Empty; switch (eSeriesType) { case SeriesType.Erosion: sSeriesType = "Lowering"; break; case SeriesType.Depositon: sSeriesType = "Raising"; break; case SeriesType.Net: if (eBarType == BarTypes.Volume) { return(string.Format("Total{0}Net Volume{0}Difference", Environment.NewLine)); } else if (eBarType == BarTypes.Vertical) { return(string.Format("Avg. Total{0}Thickness{0}Difference", Environment.NewLine)); } break; } return(string.Format("{1} of{0}{2}", Environment.NewLine, sBarType, sSeriesType)); }
private static void SetBar(BarTypes bars, BitList bits, int xPosition, int barcodeWidth) { SetBit(bits, xPosition, 3, barcodeWidth); SetBit(bits, xPosition, 4, barcodeWidth); if (bars.HasFlag(BarTypes.Descender)) { SetBit(bits, xPosition, 5, barcodeWidth); SetBit(bits, xPosition, 6, barcodeWidth); SetBit(bits, xPosition, 7, barcodeWidth); } if (bars.HasFlag(BarTypes.Ascender)) { SetBit(bits, xPosition, 0, barcodeWidth); SetBit(bits, xPosition, 1, barcodeWidth); SetBit(bits, xPosition, 2, barcodeWidth); } }
private void Refresh(double fErosionOrig, double fDeposition, double fNetOrig, double fErosionError, double fDepositionError, double fNetError, string sDisplayUnitsAbbreviation, bool bShowErrorBars, bool bShowNet, BarTypes eType, bool bAbsolute) { double max, min; // We don't want to mutate our parameters so double fNet = fNetOrig; double fErosion = fErosionOrig; if (bAbsolute) { // Bars should have their correct sign. Erosion should be negative // but the number stored in the project is always positive. fErosion = -1 * fErosion; } else { fNet = Math.Abs(fNet); } string sYAxisLabel = string.Empty; switch (eType) { case BarTypes.Area: sYAxisLabel = string.Format("Area ({0})", sDisplayUnitsAbbreviation); break; case BarTypes.Volume: sYAxisLabel = string.Format("Volume ({0})", sDisplayUnitsAbbreviation); break; case BarTypes.Vertical: sYAxisLabel = string.Format("Elevation ({0})", sDisplayUnitsAbbreviation); break; } Chart.ChartAreas[0].AxisY.Title = sYAxisLabel; Dictionary <string, Color> dSeries = new Dictionary <string, Color> { { "Lowering", Properties.Settings.Default.Erosion }, { "Raising", Properties.Settings.Default.Deposition } }; if (bShowNet) { dSeries.Add("Net", Color.Black); } Series errSeries = Chart.Series[ViewerBase.EROSION]; errSeries.Points.Clear(); errSeries.Points.AddXY(GetXAxisLabel(eType, SeriesType.Erosion), fErosion); errSeries.Points.AddXY(GetXAxisLabel(eType, SeriesType.Depositon), 0); Series depSeries = Chart.Series[ViewerBase.DEPOSITION]; depSeries.Points.Clear(); depSeries.Points.AddXY(GetXAxisLabel(eType, SeriesType.Erosion), 0); depSeries.Points.AddXY(GetXAxisLabel(eType, SeriesType.Depositon), fDeposition); max = Math.Max(fErosion, fDeposition); min = Math.Min(Math.Min(fErosion, fDeposition), 0); Series netSeries = Chart.Series.FindByName(ViewerBase.NET); if (bShowNet) { if (netSeries == null) { netSeries = Chart.Series.Add(ViewerBase.NET); } netSeries.Points.Clear(); netSeries.Color = (fNetOrig >= 0 ? depSeries.Color : errSeries.Color); netSeries.ChartArea = Chart.ChartAreas.First().Name; netSeries.Points.AddXY(GetXAxisLabel(eType, SeriesType.Erosion), 0); netSeries.Points.AddXY(GetXAxisLabel(eType, SeriesType.Depositon), 0); netSeries.Points.AddXY(GetXAxisLabel(eType, SeriesType.Net), fNet); errSeries.Points.AddXY(GetXAxisLabel(eType, SeriesType.Net), 0); depSeries.Points.AddXY(GetXAxisLabel(eType, SeriesType.Net), 0); max = Math.Max(max, fNet); min = Math.Min(min, fNet); } else { if (netSeries is Series) { Chart.Series.Remove(netSeries); } } Series errorSeries = Chart.Series.FindByName(ViewerBase.ERROR); if (eType != BarTypes.Area) { if (errorSeries == null) { errorSeries = Chart.Series.Add(ViewerBase.ERROR); errorSeries.ChartType = SeriesChartType.ErrorBar; errorSeries.Color = Color.Black; } errorSeries.Points.Clear(); errorSeries.Points.AddXY(GetXAxisLabel(eType, SeriesType.Erosion), fErosion, fErosion - fErosionError, fErosion + fErosionError); errorSeries.Points.AddXY(GetXAxisLabel(eType, SeriesType.Depositon), fDeposition, fDeposition - fDepositionError, fDeposition + fDepositionError); max = Math.Max(fErosion + fErosionError, fDeposition + fDepositionError); min = Math.Min(0, Math.Min(fErosion - fErosionError, fDeposition - fDepositionError)); if (netSeries is Series) { errorSeries.Points.AddXY(GetXAxisLabel(eType, SeriesType.Net), fNet, fNet - fNetError, fNet + fNetError); } max = Math.Max(max, fNet + fNetError); min = Math.Min(min, fNet - fNetError); } else { if (errorSeries is Series) { Chart.Series.Remove(errorSeries); } } // Min and max are zero when there's no data in a histogram if (min != max) { try { // Set an initial max and min so the autoscale can do its thing Chart.ChartAreas[0].AxisY.Maximum = max; Chart.ChartAreas[0].AxisY.Minimum = min; Chart.ChartAreas[0].RecalculateAxesScale(); Tuple <decimal, decimal> maxmin = GCDConsoleLib.Utility.IntervalMath.GetRegularizedMaxMin((decimal)max, (decimal)min, 0.02m); Chart.ChartAreas[0].AxisY.Maximum = (double)maxmin.Item1; Chart.ChartAreas[0].AxisY.Minimum = (double)maxmin.Item2; Chart.ChartAreas[0].AxisY.Interval = (double)GCDConsoleLib.Utility.IntervalMath.GetSensibleChartInterval( (decimal)Chart.ChartAreas[0].AxisY.Maximum, (decimal)Chart.ChartAreas[0].AxisY.Minimum, 10); Chart.AlignDataPointsByAxisLabel(); } catch (Exception ex) { Console.WriteLine("Error calculating change bar chart axes: " + ex.Message); //throw new Exception("Error refreshing elevation bar charts.", ex); } } }
public void Refresh(double fErosion, double fDeposition, double fNet, double fErosionError, double fDepositionError, double fNetError, string sDisplayUnitsAbbreviation, BarTypes eType, bool bAbsolute) { Refresh(fErosion, fDeposition, fNet, fErosionError, fDepositionError, fNetError, sDisplayUnitsAbbreviation, true, true, eType, bAbsolute); }
public void Refresh(double fErosion, double fDeposition, string sDisplayUnitsAbbreviation, BarTypes eType, bool bAbsolute) { Refresh(fErosion, fDeposition, 0, 0, 0, 0, sDisplayUnitsAbbreviation, false, false, eType, bAbsolute); }