public void AddPlotRemarks()
        {
            var remarks    = "something";
            var unitCode   = Units.First();
            var plotNumber = 1;

            using (var database = CreateDatabase())
            {
                var datastore = new CuttingUnitDatastore(database, CruiseID, TestDeviceInfoService.TEST_DEVICEID, new SamplerInfoDataservice(database, CruiseID, TestDeviceInfoService.TEST_DEVICEID));

                var plotID = datastore.AddNewPlot(unitCode);

                validatePlot(datastore, unitCode, plotID, plotNumber);

                var plot = datastore.GetPlot(plotID);

                datastore.AddPlotRemark(plot.CuttingUnitCode, plot.PlotNumber, remarks);

                var stuff = database.QueryGeneric("select * from plot").ToArray();

                var plotAgain = datastore.GetPlot(plotID);
                plotAgain.Remarks.Should().Be(remarks);

                datastore.AddPlotRemark(plot.CuttingUnitCode, plot.PlotNumber, remarks);

                plotAgain = datastore.GetPlot(plotID);
                plotAgain.Remarks.Should().Be(remarks + ", " + remarks);
            }
        }
        public void UpdatePlot()
        {
            var random      = new Bogus.Randomizer();
            var unitCode    = "u1";
            var stratumCode = "st1";
            var plotNumber  = 1;
            var plotID      = Guid.NewGuid().ToString();
            var cruiseID    = CruiseID;

            using (var database = CreateDatabase())
            {
                var datastore = new CuttingUnitDatastore(database, cruiseID, TestDeviceInfoService.TEST_DEVICEID, new SamplerInfoDataservice(database, CruiseID, TestDeviceInfoService.TEST_DEVICEID));

                var stratumPlot = new Plot_Stratum()
                {
                    CuttingUnitCode = unitCode,
                    PlotNumber      = plotNumber,
                    StratumCode     = stratumCode,
                    IsEmpty         = false,
                };

                database.Execute($"INSERT INTO Plot (CruiseID, PlotID, CuttingUnitCode, PlotNumber) VALUES " +
                                 $"('{cruiseID}', '{plotID}', '{unitCode}', {plotNumber})");

                var plot = datastore.GetPlot(unitCode, plotNumber);

                var slope = random.Double();
                plot.Slope = slope;

                var aspect = random.Double();
                plot.Aspect = aspect;

                var remarks = random.String2(24);
                plot.Remarks = remarks;

                datastore.UpdatePlot(plot);

                var plotAgain = datastore.GetPlot(unitCode, plotNumber);

                plotAgain.Slope.Should().Be(slope);
                plotAgain.Aspect.Should().Be(aspect);
                plotAgain.Remarks.Should().Be(remarks);
            }
        }
        private static void validatePlot(CuttingUnitDatastore datastore, string unitCode, string plotID, int expectedPlotNumber)
        {
            plotID.Should().NotBeNullOrEmpty();

            var plot = datastore.GetPlot(plotID);

            plot.Should().NotBeNull();
            plot.PlotNumber.Should().Be(expectedPlotNumber);

            var strat_plots = datastore.GetPlot_Strata(unitCode, plot.PlotNumber);

            strat_plots.Should().NotBeEmpty();

            strat_plots.All(x => x.PlotNumber == expectedPlotNumber).Should().BeTrue();
        }
        public void GetPlot_ByUnitPlotNumber()
        {
            var unitCode   = "u1";
            var plotNumber = 1;
            var plotID     = Guid.NewGuid().ToString();
            var cruiseID   = CruiseID;

            using (var database = CreateDatabase())
            {
                var datastore = new CuttingUnitDatastore(database, cruiseID, TestDeviceInfoService.TEST_DEVICEID, new SamplerInfoDataservice(database, CruiseID, TestDeviceInfoService.TEST_DEVICEID));

                database.Execute($"INSERT INTO Plot (CruiseID, PlotID, CuttingUnitCode, PlotNumber) VALUES " +
                                 $"('{cruiseID}', '{plotID}', '{unitCode}', {plotNumber})");

                var plot = datastore.GetPlot(unitCode, plotNumber);

                plot.Should().NotBeNull();
            }
        }