Example #1
0
        public void SyncVolumeEquations_Add()
        {
            var rand     = new Bogus.Randomizer();
            var fromPath = base.GetTempFilePath(".crz3", "SyncVolumeEquations_Add_fromFile");
            var toPath   = base.GetTempFilePath(".crz3", "SyncVolumeEquations_Add_toFile");

            var syncOptions = new CruiseSyncOptions()
            {
                Processing = SyncFlags.Insert,
            };

            var cruiseID = Guid.NewGuid().ToString();
            var saleID   = Guid.NewGuid().ToString();

            using var fromDb = CreateDatabaseFile(fromPath, cruiseID, saleID);

            fromDb.CopyTo(toPath, true);
            using var toDb = new CruiseDatastore_V3(toPath);

            var volEq = new VolumeEquation
            {
                CruiseID             = cruiseID,
                Species              = "sp1",
                PrimaryProduct       = "01",
                VolumeEquationNumber = "something"
            };

            fromDb.Insert(volEq);

            var syncer = new CruiseSyncer();

            syncer.Sync(cruiseID, fromDb, toDb, syncOptions);

            toDb.GetRowCount("VolumeEquation", "WHERE VolumeEquationNumber = @p1", volEq.VolumeEquationNumber).Should().Be(1);
        }
        public void UpsertVolumeEquation(VolumeEquation ve)
        {
            Database.Execute2(
                @"INSERT INTO VolumeEquation (
    CruiseID,
    Species,
    PrimaryProduct,
    VolumeEquationNumber,
    StumpHeight,
    TopDIBPrimary,
    TopDIBSecondary,
    CalcTotal,
    CalcBoard,
    CalcCubic,
    CalcCord,
    CalcTopwood,
    CalcBiomass,
    Trim,
    SegmentationLogic,
    MinLogLengthPrimary,
    MaxLogLengthPrimary,
    MinLogLengthSecondary,
    MaxLogLengthSecondary,
    MinMerchLength,
    Model,
    CommonSpeciesName,
    MerchModFlag,
    EvenOddSegment,
    CreatedBy
) VALUES (
    @CruiseID,
    @Species,
    @PrimaryProduct,
    @VolumeEquationNumber,
    @StumpHeight,
    @TopDIBPrimary,
    @TopDIBSecondary,
    @CalcTotal,
    @CalcBoard,
    @CalcCubic,
    @CalcCord,
    @CalcTopwood,
    @CalcBiomass,
    @Trim,
    @SegmentationLogic,
    @MinLogLengthPrimary,
    @MaxLogLengthPrimary,
    @MinLogLengthSecondary,
    @MaxLogLengthSecondary,
    @MinMerchLength,
    @Model,
    @CommonSpeciesName,
    @MerchModFlag,
    @EvenOddSegment,
    @DeviceID
)
ON CONFLICT (CruiseID, Species, PrimaryProduct, VolumeEquationNumber) DO
UPDATE SET
    StumpHeight = @StumpHeight,
    TopDIBPrimary = @TopDIBPrimary,
    TopDIBSecondary = @TopDIBSecondary,
    CalcTotal = @CalcTotal,
    CalcBoard = @CalcBoard,
    CalcCubic = @CalcCubic,
    CalcCord = @CalcCord,
    CalcTopwood = @CalcTopwood,
    CalcBiomass = @CalcBiomass,
    Trim = @Trim,
    SegmentationLogic = @SegmentationLogic,
    MinLogLengthPrimary = @MinLogLengthPrimary,
    MaxLogLengthPrimary = @MaxLogLengthPrimary,
    MinLogLengthSecondary = @MinLogLengthSecondary,
    MaxLogLengthSecondary = @MaxLogLengthSecondary,
    MinMerchLength = @MinMerchLength,
    Model = @Model,
    CommonSpeciesName = @CommonSpeciesName,
    MerchModFlag = @MerchModFlag,
    EvenOddSegment =  @EvenOddSegment,
    ModifiedBy = @DeviceID
WHERE CruiseID = @CruiseID
    AND Species = @Species
    AND PrimaryProduct = @PrimaryProduct
    AND VolumeEquationNumber = @VolumeEquationNumber;",
                new
            {
                CruiseID,
                ve.Species,
                ve.PrimaryProduct,
                ve.VolumeEquationNumber,
                ve.StumpHeight,
                ve.TopDIBPrimary,
                ve.TopDIBSecondary,
                ve.CalcTotal,
                ve.CalcBoard,
                ve.CalcCubic,
                ve.CalcCord,
                ve.CalcTopwood,
                ve.CalcBiomass,
                ve.Trim,
                ve.SegmentationLogic,
                ve.MinLogLengthPrimary,
                ve.MaxLogLengthPrimary,
                ve.MinLogLengthSecondary,
                ve.MaxLogLengthSecondary,
                ve.MinMerchLength,
                ve.Model,
                ve.CommonSpeciesName,
                ve.MerchModFlag,
                ve.EvenOddSegment,
                DeviceID,
            });
        }
        public void AddVolumeEquation(VolumeEquation ve)
        {
            Database.Execute2(
                @"INSERT INTO VolumeEquation (
    CruiseID,
    Species,
    PrimaryProduct,
    VolumeEquationNumber,
    StumpHeight,
    TopDIBPrimary,
    TopDIBSecondary,
    CalcTotal,
    CalcBoard,
    CalcCubic,
    CalcCord,
    CalcTopwood,
    CalcBiomass,
    Trim,
    SegmentationLogic,
    MinLogLengthPrimary,
    MaxLogLengthPrimary,
    MinLogLengthSecondary,
    MaxLogLengthSecondary,
    MinMerchLength,
    Model,
    CommonSpeciesName,
    MerchModFlag,
    EvenOddSegment,
    CreatedBy
) VALUES (
    @CruiseID,
    @Species,
    @PrimaryProduct,
    @VolumeEquationNumber,
    @StumpHeight,
    @TopDIBPrimary,
    @TopDIBSecondary,
    @CalcTotal,
    @CalcBoard,
    @CalcCubic,
    @CalcCord,
    @CalcTopwood,
    @CalcBiomass,
    @Trim,
    @SegmentationLogic,
    @MinLogLengthPrimary,
    @MaxLogLengthPrimary,
    @MinLogLengthSecondary,
    @MaxLogLengthSecondary,
    @MinMerchLength,
    @Model,
    @CommonSpeciesName,
    @MerchModFlag,
    @EvenOddSegment,
    @DeviceID
);",
                new
            {
                CruiseID,
                ve.Species,
                ve.PrimaryProduct,
                ve.VolumeEquationNumber,
                ve.StumpHeight,
                ve.TopDIBPrimary,
                ve.TopDIBSecondary,
                ve.CalcTotal,
                ve.CalcBoard,
                ve.CalcCubic,
                ve.CalcCord,
                ve.CalcTopwood,
                ve.CalcBiomass,
                ve.Trim,
                ve.SegmentationLogic,
                ve.MinLogLengthPrimary,
                ve.MaxLogLengthPrimary,
                ve.MinLogLengthSecondary,
                ve.MaxLogLengthSecondary,
                ve.MinMerchLength,
                ve.Model,
                ve.CommonSpeciesName,
                ve.MerchModFlag,
                ve.EvenOddSegment,
                DeviceID,
            });
        }