public void InsertPlot_Stratum(Plot_Stratum plotStratum) { if (plotStratum is null) { throw new ArgumentNullException(nameof(plotStratum)); } var plot_stratum_CN = Database.ExecuteScalar2 <long?>( $@"INSERT INTO Plot_Stratum ( CruiseID, CuttingUnitCode, PlotNumber, StratumCode, IsEmpty, KPI, ThreePRandomValue, CreatedBy ) VALUES ( '{CruiseID}', @CuttingUnitCode, @PlotNumber, @StratumCode, @IsEmpty, @KPI, @ThreePRandomValue, '{DeviceID}' ); SELECT last_insert_rowid();", plotStratum); plotStratum.InCruise = true; plotStratum.Plot_Stratum_CN = plot_stratum_CN; }
public void DeletePlot_Stratum() { var unitCode = "u1"; var stratumCode = "st1"; var plotNumber = 1; var plotID = Guid.NewGuid().ToString(); 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, }; database.Execute("INSERT INTO Plot (CruiseID, PlotID, CuttingUnitCode, PlotNumber) VALUES " + $"('{CruiseID}', '{plotID}', '{unitCode}', {plotNumber});"); datastore.InsertPlot_Stratum(stratumPlot); var echo = datastore.GetPlot_Stratum(unitCode, stratumCode, plotNumber); echo.Should().NotBeNull("where's my echo"); datastore.DeletePlot_Stratum(echo.CuttingUnitCode, echo.StratumCode, echo.PlotNumber); } }
public void ThreePPNT_FieldCheck() { var init = new DatabaseInitializer(); using var db = init.CreateDatabase(); var stratum = init.PlotStrata.First(); var unit = init.Units.First(); var plot = new Plot() { CruiseID = init.CruiseID, PlotID = Guid.NewGuid().ToString(), PlotNumber = 1, CuttingUnitCode = unit }; db.Insert(plot); var plotStratum = new Plot_Stratum() { CruiseID = init.CruiseID, PlotNumber = plot.PlotNumber, CuttingUnitCode = unit, StratumCode = stratum.StratumCode, }; db.Insert(plotStratum); plotStratum.AverageHeight = 1; plotStratum.KPI = 1; plotStratum.TreeCount = 1; db.Update(plotStratum); }
public void UpdatePlot_Stratum() { 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})"); datastore.InsertPlot_Stratum(stratumPlot); stratumPlot.IsEmpty = true; datastore.UpdatePlot_Stratum(stratumPlot); var ourStratumPlot = datastore.GetPlot_Stratum(unitCode, stratumCode, plotNumber); ourStratumPlot.IsEmpty.Should().Be(true); } }
private void ValidatePlot_Stratum(Plot_Stratum ps, bool inCruise) { ps.CuttingUnitCode.Should().NotBeNullOrWhiteSpace(); ps.StratumCode.Should().NotBeNullOrWhiteSpace(); ps.PlotNumber.Should().BeGreaterThan(0); ps.InCruise.Should().Be(inCruise); }
public void UpdatePlot_Stratum(Plot_Stratum stratumPlot) { Database.Execute2( "UPDATE Plot_Stratum SET " + "IsEmpty = @IsEmpty, " + "KPI = @KPI " + "WHERE " + "Plot_Stratum_CN = @Plot_Stratum_CN;", stratumPlot); }
public void Sync_Plot_Stratum_Update() { var fromPath = base.GetTempFilePath(".crz3", "Sync_Plot_Add_fromFile"); var toPath = base.GetTempFilePath(".crz3", "Sync_Plot_Add_toFile"); var syncOptions = new CruiseSyncOptions() { Design = SyncFlags.Insert, FieldData = SyncFlags.InsertUpdate, }; var cruiseID = Guid.NewGuid().ToString(); var saleID = Guid.NewGuid().ToString(); using var fromDb = CreateDatabaseFile(fromPath, cruiseID, saleID); var plot = new Plot() { CruiseID = cruiseID, PlotID = Guid.NewGuid().ToString(), CuttingUnitCode = Units[0], PlotNumber = 1, }; fromDb.Insert(plot); var plotStratum = new Plot_Stratum() { CruiseID = cruiseID, PlotNumber = plot.PlotNumber, CuttingUnitCode = plot.CuttingUnitCode, StratumCode = PlotStrata[0].StratumCode, }; fromDb.Insert(plotStratum); fromDb.CopyTo(toPath, true); using var toDb = new CruiseDatastore_V3(toPath); plotStratum.KPI = Rand.Double(); plotStratum.ThreePRandomValue = Rand.Int(); toDb.Update(plotStratum); var syncer = new CruiseSyncer(); syncer.Sync(cruiseID, fromDb, toDb, syncOptions); var plotStratumAgain = toDb .From <Plot_Stratum>() .Where("Plot_Stratum_CN = @p1") .Query(plotStratum.Plot_Stratum_CN) .FirstOrDefault(); plotStratumAgain.Should().BeEquivalentTo(plotStratum, config => config.Excluding(x => x.Modified_TS)); }
public void IsTreeNumberAvalible_Plot_nummberAcrossStrata() { var init = new DatastoreInitializer(); var unit = init.Units[0]; var stratum = init.PlotStrata[0].StratumCode; var altStratum = init.PlotStrata[1].StratumCode; var plotNumber = 1; using var db = init.CreateDatabase(); db.Execute("UPDATE Cruise SET UseCrossStrataPlotTreeNumbering = 1 WHERE CruiseID = @p1;", init.CruiseID); var ds = new CuttingUnitDatastore(db, init.CruiseID, init.DeviceID, new SamplerInfoDataservice(db, init.CruiseID, init.DeviceID)); var newPlot = new Plot() { CruiseID = init.CruiseID, CuttingUnitCode = unit, PlotNumber = plotNumber, PlotID = Guid.NewGuid().ToString(), }; db.Insert(newPlot); var newPlotStratum = new Plot_Stratum() { CruiseID = init.CruiseID, CuttingUnitCode = unit, PlotNumber = newPlot.PlotNumber, StratumCode = stratum, }; db.Insert(newPlotStratum); ds.IsTreeNumberAvalible(unit, 1, newPlotStratum.PlotNumber, newPlotStratum.StratumCode).Should().BeTrue(); ds.IsTreeNumberAvalible(unit, 1, newPlotStratum.PlotNumber, altStratum).Should().BeTrue(); db.Insert(new Tree() { CruiseID = init.CruiseID, TreeID = Guid.NewGuid().ToString(), TreeNumber = 1, CuttingUnitCode = unit, StratumCode = stratum, SampleGroupCode = init.SampleGroups[0].SampleGroupCode, PlotNumber = plotNumber, }); ds.IsTreeNumberAvalible(unit, 1, newPlotStratum.PlotNumber, newPlotStratum.StratumCode).Should().BeFalse(); ds.IsTreeNumberAvalible(unit, 1, newPlotStratum.PlotNumber, altStratum).Should().BeFalse(); }
public void Sync_Plot_Stratum_Add() { var fromPath = base.GetTempFilePath(".crz3", "Sync_Plot_Add_fromFile"); var toPath = base.GetTempFilePath(".crz3", "Sync_Plot_Add_toFile"); var syncOptions = new CruiseSyncOptions() { Design = SyncFlags.Insert, FieldData = SyncFlags.Insert, }; var cruiseID = Guid.NewGuid().ToString(); var saleID = Guid.NewGuid().ToString(); using var fromDb = CreateDatabaseFile(fromPath, cruiseID, saleID); var newPlot = new Plot() { CruiseID = cruiseID, PlotID = Guid.NewGuid().ToString(), CuttingUnitCode = Units[0], PlotNumber = 1, }; fromDb.Insert(newPlot); fromDb.CopyTo(toPath, true); using var toDb = new CruiseDatastore_V3(toPath); var newPlotStratum = new Plot_Stratum() { CruiseID = cruiseID, PlotNumber = newPlot.PlotNumber, CuttingUnitCode = newPlot.CuttingUnitCode, StratumCode = PlotStrata[0].StratumCode, }; fromDb.Insert(newPlotStratum); var syncer = new CruiseSyncer(); syncer.Sync(cruiseID, fromDb, toDb, syncOptions); toDb.GetRowCount("Plot", "WHERE PlotID = @p1", newPlot.PlotID) .Should().Be(1); toDb.ExecuteScalar2 <int>("SELECT COUNT(*) FROM Plot_Stratum WHERE CruiseID = @CruiseID AND PlotNumber = @PlotNumber AND CuttingUnitCode = @CuttingUnitCode", newPlotStratum) .Should().Be(1); }
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); } }
public void InsertStratumPlot() { var plotNumber = 1; var stratumCode = "st1"; var unitCode = "u1"; var isEmpty = true; var kpi = 101; var plotID = Guid.NewGuid().ToString(); var cruiseID = CruiseID; //var remarks = "something"; 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 = isEmpty, KPI = kpi, //Remarks = remarks }; database.Execute($"INSERT INTO Plot (CruiseID, PlotID, CuttingUnitCode, PlotNumber) VALUES " + $"('{cruiseID}', '{plotID}', '{unitCode}', {plotNumber})"); datastore.InsertPlot_Stratum(stratumPlot); datastore.IsPlotNumberAvalible(unitCode, plotNumber).Should().BeFalse("we just took that plot number"); var plotStratumAgain = datastore.GetPlot_Stratum(unitCode, stratumCode, plotNumber); plotStratumAgain.Should().NotBeNull(); plotStratumAgain.PlotNumber.Should().Be(plotNumber); //ourStratumPlot.Remarks.Should().Be(remarks); plotStratumAgain.KPI.Should().Be(kpi); plotStratumAgain.IsEmpty.Should().Be(isEmpty); plotStratumAgain.StratumCode.Should().Be(stratumCode); } }
public void UpdatePlotNumberCascade() { var init = new DatabaseInitializer(); using var db = init.CreateDatabase(); var plot = new Plot { CruiseID = init.CruiseID, PlotID = Guid.NewGuid().ToString(), PlotNumber = 1, CuttingUnitCode = "u1", }; db.Insert(plot); var plotStratum = new Plot_Stratum { CruiseID = init.CruiseID, PlotNumber = 1, StratumCode = "st1", CuttingUnitCode = "u1", }; db.Insert(plotStratum); var tree = new Tree { CruiseID = init.CruiseID, TreeID = Guid.NewGuid().ToString(), TreeNumber = 1, CuttingUnitCode = "u1", PlotNumber = 1, StratumCode = "st1", SampleGroupCode = "sg1", }; db.Insert(tree); var tl = new TallyLedger { CruiseID = init.CruiseID, TallyLedgerID = Guid.NewGuid().ToString(), CuttingUnitCode = "u1", PlotNumber = 1, StratumCode = "st1", SampleGroupCode = "sg1", TreeID = tree.TreeID, }; db.Insert(tl); plot.PlotNumber = 2; db.Update(plot); var tlAgain = db.From <TallyLedger>().Query().First(); tlAgain.PlotNumber.Should().Be(plot.PlotNumber); var treeAgain = db.From <Tree>().Query().First(); treeAgain.PlotNumber.Should().Be(plot.PlotNumber); }
public void Sync_TallyLedger_With_PlotTree_Add() { var fromPath = base.GetTempFilePath(".crz3", "Sync_Unit_Add_fromFile"); var toPath = base.GetTempFilePath(".crz3", "Sync_Unit_Add_toFile"); var syncOptions = new CruiseSyncOptions() { Design = SyncFlags.Insert, FieldData = SyncFlags.Insert, TreeDataFlags = SyncFlags.Insert, TreeFlags = SyncFlags.Insert, }; var cruiseID = Guid.NewGuid().ToString(); var saleID = Guid.NewGuid().ToString(); using var fromDb = CreateDatabaseFile(fromPath, cruiseID, saleID); var plot = new Plot() { CruiseID = cruiseID, PlotID = Guid.NewGuid().ToString(), CuttingUnitCode = Units[0], PlotNumber = 1, }; fromDb.Insert(plot); var plotStratum = new Plot_Stratum() { CruiseID = cruiseID, PlotNumber = plot.PlotNumber, CuttingUnitCode = plot.CuttingUnitCode, StratumCode = PlotStrata[0].StratumCode, }; fromDb.Insert(plotStratum); fromDb.CopyTo(toPath, true); using var toDb = new CruiseDatastore_V3(toPath); var newPlotTree = new Tree() { TreeID = Guid.NewGuid().ToString(), CruiseID = cruiseID, CuttingUnitCode = plot.CuttingUnitCode, PlotNumber = plot.PlotNumber, StratumCode = plotStratum.StratumCode, SampleGroupCode = SampleGroups[0].SampleGroupCode, SpeciesCode = Species[0], TreeNumber = 1, }; fromDb.Insert(newPlotTree); var newTallyLedger = new TallyLedger() { CruiseID = cruiseID, TallyLedgerID = Guid.NewGuid().ToString(), CuttingUnitCode = newPlotTree.CuttingUnitCode, StratumCode = newPlotTree.StratumCode, PlotNumber = newPlotTree.PlotNumber, SampleGroupCode = newPlotTree.SampleGroupCode, TreeID = newPlotTree.TreeID, TreeCount = 1, }; fromDb.Insert(newTallyLedger); var syncer = new CruiseSyncer(); syncer.Sync(cruiseID, fromDb, toDb, syncOptions); toDb.GetRowCount("TallyLedger", "WHERE TallyLedgerID = @p1", newTallyLedger.TallyLedgerID) .Should().Be(1); }