public void TestReadPlots() { using (var ds = new CruiseDAL.DAL(":memory:", true)) { var unit = new CuttingUnit() { Code = "1" }; var st = new PlotStratum() { Code = "1", Method = CruiseMethods.THREEPPNT }; ds.Insert(unit); ds.Insert(st); ds.Insert(new Plot() { CuttingUnit = unit, Stratum = st, PlotNumber = 1 }); st.DAL = ds; st.PopulatePlots(unit.CuttingUnit_CN.Value); st.Plots.Should().NotBeNullOrEmpty(); st.Plots.Should().OnlyContain(x => x is Plot3PPNT); } }
private void LoadCuttingUnitInfo(CuttingUnit unit) { _strataView.SuspendLayout(); _strataView.Controls.Clear(); this._dataEntryMI.Enabled = (unit != null); if (unit != null) { var strata = unit.DAL.From <StratumDO>() .Join("CuttingUnitStratum", "USING (Stratum_CN)", "CUST") .Where("CUST.CuttingUnit_CN = ?") .Query(unit.CuttingUnit_CN); foreach (StratumDO st in strata) { Label stLBL = new Label(); stLBL.Text = st.GetDescriptionShort(); if (_fontHeight == 0) { using (Graphics g = base.CreateGraphics()) { SizeF s = g.MeasureString(" ", stLBL.Font); _fontHeight = (int)Math.Ceiling(s.Height); } } stLBL.Dock = DockStyle.Top; stLBL.Height = _fontHeight; _strataView.Controls.Add(stLBL); } } _strataView.ResumeLayout(); }
public void TestMakePlot_3ppnt() { using (var dal = new CruiseDAL.DAL(":memory:", true)) { var unit = new CuttingUnit() { Code = "01", DAL = dal }; dal.Insert(unit); var stratum = new PlotStratum() { Code = "01", Method = CruiseMethods.THREEPPNT, DAL = dal }; dal.Insert(stratum); var plot = stratum.MakePlot(unit); plot.Should().BeOfType <Plot3PPNT>(); plot.PlotNumber.Should().Be(1L); plot.CuttingUnit.Should().Be(unit); plot.Stratum.Should().Be(stratum); plot.Trees.Should().NotBeNull(); } }
private void _plotInfo_BTN_Click(object sender, EventArgs e) { using (var ds = new DAL()) { var stratum = new PlotStratum() { DAL = ds, Code = "1", Method = "something" }; var unit = new CuttingUnit() { DAL = ds, Code = "1" }; ds.Insert(unit, OnConflictOption.Default); ds.Insert(stratum, OnConflictOption.Default); stratum.PopulatePlots(unit.CuttingUnit_CN.Value); var plot = new Plot() { Stratum = stratum }; using (var view = new FormPlotInfo()) { view.ShowDialog(plot, stratum, false); } } }
public void Sync_Unit_Delete() { var init = new DatabaseInitializer(); var fromPath = base.GetTempFilePath(".crz3", "Sync_Unit_Delete_fromFile"); var toPath = base.GetTempFilePath(".crz3", "Sync_Unit_Delete_toFile"); using var fromDb = init.CreateDatabaseFile(fromPath); var cruiseID = init.CruiseID; var saleID = init.SaleID; var newUnit = new CuttingUnit() { CruiseID = cruiseID, CuttingUnitID = Guid.NewGuid().ToString(), CuttingUnitCode = "newUnitCode1", }; fromDb.Insert(newUnit); fromDb.CopyTo(toPath, true); using var toDb = new CruiseDatastore_V3(toPath); fromDb.Delete(newUnit); var syncer = new DeleteSysncer(); var syncOptions = new CruiseSyncOptions(); syncer.Sync(cruiseID, fromDb, toDb, syncOptions); toDb.GetRowCount("CuttingUnit", "WHERE CuttingUnitID = @p1", newUnit.CuttingUnitID) .Should().Be(0); }
public void SelectUnit(CuttingUnit unit) { if (unit == null) { throw new ArgumentNullException(nameof(unit)); } NavigationService.ShowCuttingUnitInfo(unit.CuttingUnitCode); }
private void logsButton_Click(object sender, EventArgs e) { using (var ds = new DAL()) { var cuttingUnit = new CuttingUnit() { DAL = ds, Code = "01" }; cuttingUnit.Save(); var stratum = new Stratum() { DAL = ds, Code = "01" }; stratum.Save(); var fieldSetup = new LogFieldSetupDO() { DAL = ds, Stratum_CN = stratum.Stratum_CN, Field = LOG.LOGNUMBER, Heading = LOG.LOGNUMBER }; fieldSetup.Save(); fieldSetup = new LogFieldSetupDO() { DAL = ds, Stratum_CN = stratum.Stratum_CN, Field = LOG.GRADE, Heading = LOG.GRADE }; fieldSetup.Save(); var controller = new ApplicationController(null); var tree = new Tree() { DAL = ds, CuttingUnit_CN = cuttingUnit.CuttingUnit_CN, Stratum_CN = stratum.Stratum_CN, TreeNumber = 1 }; tree.Save(); var dataService = new ILogDataService(tree, (RegionLogInfo)null, ds); using (var view = new FormLogs(dataService)) { view.ShowDialog(); } } }
public void UpdateCuttingUnit(CuttingUnit unit) { Database.Execute2( @"UPDATE CuttingUnit SET CuttingUnitCode = @CuttingUnitCode, Area = @Area, Description = @Description, Remarks = @Remarks, LoggingMethod = @LoggingMethod, PaymentUnit = @PaymentUnit, Rx = @Rx WHERE CuttingUnitID = @CuttingUnitID;", unit); }
public void Sync_CuttingUnit_Update() { var fromPath = base.GetTempFilePath(".crz3", "CuttingUnit_Updated_fromFile"); var toPath = base.GetTempFilePath(".crz3", "CuttingUnit_Update_toFile"); var syncOptions = new CruiseSyncOptions(); var cruiseID = Guid.NewGuid().ToString(); var saleID = Guid.NewGuid().ToString(); // initialize source database using var fromDb = CreateDatabaseFile(fromPath, cruiseID, saleID); var cuttingUnitID = Guid.NewGuid().ToString(); var cuttingUnit = new CuttingUnit() { CruiseID = cruiseID, CuttingUnitID = cuttingUnitID, CuttingUnitCode = "10", }; fromDb.Insert(cuttingUnit); // initialize dest database // as exact copy of source database fromDb.CopyTo(toPath, true); using var toDb = new CruiseDatastore_V3(toPath); // modify cutting unit value and save to source database cuttingUnit.Area = Rand.Int(); cuttingUnit.Description = Rand.String(); cuttingUnit.LoggingMethod = "401"; cuttingUnit.PaymentUnit = Rand.AlphaNumeric(3); cuttingUnit.Rx = Rand.AlphaNumeric(3); cuttingUnit.ModifiedBy = Rand.AlphaNumeric(4); fromDb.Update(cuttingUnit); // run sync var syncer = new CruiseSyncer(); syncer.Sync(cruiseID, fromDb, toDb, syncOptions); var cuttingUnitAgain = toDb.From <CuttingUnit>().Where("CuttingUnitID = @p1") .Query(cuttingUnitID).FirstOrDefault(); cuttingUnitAgain.Should().BeEquivalentTo(cuttingUnit, x => x.Excluding(y => y.Modified_TS)); }
public void AddCuttingUnit(CuttingUnit unit) { unit.CuttingUnitID ??= Guid.NewGuid().ToString(); Database.Execute2( @"INSERT INTO CuttingUnit ( CuttingUnitID, CruiseID, CuttingUnitCode, Area, Description, Remarks, LoggingMethod, PaymentUnit, Rx, CreatedBy ) VALUES ( @CuttingUnitID, @CruiseID, @CuttingUnitCode, @Area, @Description, @Remarks, @LoggingMethod, @PaymentUnit, @Rx, @DeviceID );", new { unit.CuttingUnitID, CruiseID, unit.CuttingUnitCode, unit.Area, unit.Description, unit.Remarks, unit.LoggingMethod, unit.PaymentUnit, unit.Rx, DeviceID, }); }
public void Sync_CuttingUnit_Update_CuttingUnitCode() { var fromPath = base.GetTempFilePath(".crz3", "CuttingUnit_Updated_code_fromFile"); var toPath = base.GetTempFilePath(".crz3", "CuttingUnit_Update_code_toFile"); var syncOptions = new CruiseSyncOptions(); var cruiseID = Guid.NewGuid().ToString(); var saleID = Guid.NewGuid().ToString(); // initialize source database using var fromDb = CreateDatabaseFile(fromPath, cruiseID, saleID); var cuttingUnitID = Guid.NewGuid().ToString(); var cuttingUnit = new CuttingUnit() { CruiseID = cruiseID, CuttingUnitID = cuttingUnitID, CuttingUnitCode = "10", }; fromDb.Insert(cuttingUnit); // initialize dest database // as exact copy of source database fromDb.CopyTo(toPath, true); using var toDb = new CruiseDatastore_V3(toPath); // modify cutting unit value and save to source database cuttingUnit.CuttingUnitCode = "11"; fromDb.Update(cuttingUnit); // run sync var syncer = new CruiseSyncer(); syncer.Sync(cruiseID, fromDb, toDb, syncOptions); var cuttingUnitAgain = toDb.From <CuttingUnit>().Where("CuttingUnitID = @p1") .Query(cuttingUnitID).FirstOrDefault(); cuttingUnitAgain.CuttingUnitCode.Should().BeEquivalentTo(cuttingUnit.CuttingUnitCode); }
public void ShowDataEntry(CuttingUnit unit) { lock (_dataEntrySyncLock) { IDataEntryDataService dataService; ISampleSelectorRepository sampleSelectorReop; try { dataService = new IDataEntryDataService(unit.Code, ApplicationController.DataStore); sampleSelectorReop = new SampleSelectorRepository(new SamplerInfoDataservice_V2(ApplicationController.DataStore)); } catch (CruiseConfigurationException e) { MessageBox.Show(e.Message, e.GetType().Name); return; } catch (UserFacingException e) { var exType = e.GetType(); MessageBox.Show(e.Message, exType.Name); return; } try { ShowDataEntry(dataService, sampleSelectorReop); } catch (Exception ex) { ReportException(ex); //var timeStamp = DateTime.Now.ToString("HH_mm"); //var dumFilePath = System.IO.Path.Combine(System.IO.Path.GetTempPath(), "FScruiserDump" + timeStamp + ".xml"); //MessageBox.Show("FScruiser encountered a unexpected problem\r\n" // + "Dumping tree data to " + dumFilePath); //dataService.Dump(dumFilePath); } } }
public void DeleteCuttingUnit(CuttingUnit unit) { Database.Execute("DELETE FROM CuttingUnit WHERE CuttingUnitCode = @p1 AND CruiseID = @p2", unit.CuttingUnitCode, CruiseID); }
public void RecursiveDeleteStratum() { using (var database = new DAL()) { var unit = new CuttingUnit() { Code = "u1" }; database.Insert(unit); var stratum = new Stratum() { Code = "st1", Method = "STR" }; database.Insert(stratum); var unitStratum = new CuttingUnitStratum() { CuttingUnit_CN = unit.CuttingUnit_CN.Value, Stratum_CN = stratum.Stratum_CN.Value }; database.Insert(unitStratum); var sampleGroup = new SampleGroup() { Stratum_CN = stratum.Stratum_CN.Value, Code = "sg1", CutLeave = "C", UOM = "01", PrimaryProduct = "01" }; database.Insert(sampleGroup); var samplerState = new SamplerState() { SampleGroup_CN = sampleGroup.SampleGroup_CN.Value }; database.Insert(samplerState); var countTree = new CountTree() { CuttingUnit_CN = unit.CuttingUnit_CN.Value, SampleGroup_CN = sampleGroup.SampleGroup_CN.Value }; database.Insert(countTree); var treeEstimate = new TreeEstimate() { CountTree_CN = countTree.CountTree_CN }; database.Insert(treeEstimate); var stratumStats = new StratumStats() { Stratum_CN = stratum.Stratum_CN.Value, Code = "ss1" }; database.Insert(stratumStats); var sampleGroupStats = new SampleGroupStats() { StratumStats_CN = stratumStats.StratumStats_CN.Value, Code = "sgs1" }; database.Insert(sampleGroupStats); var stDO = database.Query <StratumDO>("SELECT * FROM Stratum;").First(); stDO.Should().NotBeNull(); var plot = new Plot() { CuttingUnit_CN = unit.CuttingUnit_CN.Value, Stratum_CN = stratum.Stratum_CN.Value, PlotNumber = 1, }; database.Insert(plot); var tree = new Tree() { CuttingUnit_CN = unit.CuttingUnit_CN.Value, Stratum_CN = stratum.Stratum_CN.Value, SampleGroup_CN = sampleGroup.SampleGroup_CN.Value, Plot_CN = plot.Plot_CN.Value, TreeNumber = 1, Species = "1", }; database.Insert(tree); var log = new Log() { Tree_CN = tree.Tree_CN.Value, LogNumber = "1", }; database.Insert(log); database.HasForeignKeyErrors().Should().BeFalse(); StratumDO.RecursiveDeleteStratum(stDO); stDO.Invoking(x => x.Delete()).Should().NotThrow(); database.GetRowCount("Stratum", "WHERE Stratum_CN = @p1", stratum.Stratum_CN) .Should().Be(0); database.GetRowCount("Plot", "WHERE Plot_CN = @p1", plot.Plot_CN) .Should().Be(0); database.GetRowCount("Tree", "WHERE Tree_CN = @p1", tree.Tree_CN) .Should().Be(0); database.GetRowCount("Log", "WHERE Log_CN = @p1", log.Log_CN) .Should().Be(0); database.GetRowCount("StratumStats", "WHERE StratumStats_CN = @p1", stratumStats.StratumStats_CN) .Should().Be(0); database.GetRowCount("SampleGroupStats", "WHERE SampleGroupStats_CN = @p1", sampleGroupStats.SampleGroupStats_CN) .Should().Be(0); var stuff = database.QueryGeneric("PRAGMA FOREIGN_KEY_CHECK"); //database.Execute($"DELETE FROM SamplerState WHERE SampleGroup_CN IN (SELECT SampleGroup_CN FROM SampleGroup WHERE SampleGroup.Stratum_CN = {stDO.Stratum_CN});"); //stuff = database.QueryGeneric("PRAGMA FOREIGN_KEY_CHECK"); database.HasForeignKeyErrors().Should().BeFalse(); } }
public void ShowDataEntry(CuttingUnit unit) { throw new NotImplementedException(); }