Пример #1
0
        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"));
        }
Пример #3
0
        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);
            }
        }
Пример #5
0
        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);
                }
            }
        }
Пример #6
0
 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);
 }
Пример #7
0
 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);
 }