Beispiel #1
0
        public IEnumerable <LogConflict> GetLogConflicts(CruiseDatastore_V3 source, CruiseDatastore_V3 destination, string cruiseID)
        {
            var sourceAlias = "src";

            destination.AttachDB(source, sourceAlias);
            try
            {
                return(destination.Query <LogConflict>(
                           $@"SELECT 
    destT.CuttingUnitCode,
    destT.PlotNumber,
    destT.TreeNumber,
    destL.LogNumber,
    destL.LogID AS DestLogID,
    srcL.LogID AS SrcLogID
FROM main.Log AS destL 
    JOIN main.Tree AS destT USING (TreeID)
    JOIN {sourceAlias}.Tree AS srcT ON 
        destT.CruiseID = srcT.CruiseID
        AND destT.CuttingUnitCode = srcT.CuttingUnitCode 
        AND ifnull(destT.PlotNumber, 0) = ifnull(srcT.PlotNumber, 0)
        AND destT.TreeNumber = srcT.TreeNumber
    JOIN {sourceAlias}.Log AS srcL ON srcT.TreeID = srcL.TreeID
        AND destL.LogNumber = srcL.LogNumber
WHERE destT.CruiseID = @p1 AND destL.LogID != srcL.LogID;", cruiseID).ToArray());
            }
            finally
            {
                destination.DetachDB(sourceAlias);
            }
        }
Beispiel #2
0
        public IEnumerable <TreeConflict> GetTreeConflicts(CruiseDatastore_V3 source, CruiseDatastore_V3 destination, string cruiseID)
        {
            var sourceAlias = "src";

            destination.AttachDB(source, sourceAlias);
            try
            {
                return(destination.Query <TreeConflict>(
                           $@"SELECT 
    destT.CuttingUnitCode, 
    destT.PlotNumber, 
    destT.TreeNumber,
    srcT.TreeID AS SrcTreeID, 
    destT.TreeID AS DestTreeID
FROM main.Tree AS destT
    JOIN {sourceAlias}.Tree AS srcT ON 
        destT.CruiseID = srcT.CruiseID 
        AND destT.CuttingUnitCode = srcT.CuttingUnitCode 
        AND destT.PlotNumber = srcT.PlotNumber
        AND destT.TreeNumber = srcT.TreeNumber
WHERE destT.CruiseID = @p1 AND destT.TreeID != srcT.TreeID;", cruiseID).ToArray());
            }
            finally
            {
                destination.DetachDB(sourceAlias);
            }
        }
Beispiel #3
0
        public IEnumerable <StratumDiffResult> DiffStratumKeys(CruiseDatastore_V3 source, CruiseDatastore_V3 destination, string cruiseID)
        {
            var sourceAlias = "src";

            destination.AttachDB(source, sourceAlias);
            try
            {
                return(destination.Query <StratumDiffResult>(
                           $@"SELECT 
    st1.StratumID, 
    st1.StratumCode AS DestStratumCode, 
    st2.StratumCode AS SrcStratumCode 
FROM main.Stratum AS st1
JOIN {sourceAlias}.Stratum AS st2 USING (StratumID) 
WHERE st1.CruiseID = @p1 AND st1.StratumCode != st2.StratumCode;", cruiseID).ToArray());
            }
            finally
            {
                destination.DetachDB(sourceAlias);
            }
        }
Beispiel #4
0
        public IEnumerable <CuttingUnitDiffResult> DiffCuttingUnitKeys(CruiseDatastore_V3 source, CruiseDatastore_V3 destination, string cruiseID)
        {
            var sourceAlias = "src";

            destination.AttachDB(source, sourceAlias);
            try
            {
                return(destination.Query <CuttingUnitDiffResult>(
                           $@"SELECT 
    cu1.CuttingUnitID, 
    cu1.CuttingUnitCode AS DestCuttingUnitCode, 
    cu2.CuttingUnitCode AS SrcCuttingUnitCode 
FROM main.CuttingUnit AS cu1
JOIN {sourceAlias}.CuttingUnit AS cu2 USING (CuttingUnitID) 
WHERE cu1.CruiseID = @p1 AND cu1.CuttingUnitCode != cu2.CuttingUnitCode;", cruiseID).ToArray());
            }
            finally
            {
                destination.DetachDB(sourceAlias);
            }
        }
Beispiel #5
0
        public IEnumerable <PlotConflict> GetPlotConflicts(CruiseDatastore_V3 source, CruiseDatastore_V3 destination, string cruiseID)
        {
            var sourceAlias = "src";

            destination.AttachDB(source, sourceAlias);
            try
            {
                return(destination.Query <PlotConflict>(
                           $@"SELECT 
    destP.CuttingUnitCode, 
    destP.PlotNumber, 
    srcP.PlotID AS SrcPlotID, 
    destP.PlotID AS DestPlotID
FROM main.Plot AS destP
    JOIN {sourceAlias}.Plot AS srcP USING (CuttingUnitCode, PlotNumber, CruiseID) 
    WHERE destP.CruiseID = @p1 AND destP.PlotID != srcP.PlotID;", cruiseID).ToArray());
            }
            finally
            {
                destination.DetachDB(sourceAlias);
            }
        }
Beispiel #6
0
        public IEnumerable <CruiseConflict> GetCruiseConflicts(CruiseDatastore_V3 source, CruiseDatastore_V3 destination, string cruiseID)
        {
            var sourceAlias = "src";

            destination.AttachDB(source, sourceAlias);
            try
            {
                return(destination.Query <CruiseConflict>(
                           $@"SELECT 
    srcCr.CruiseNumber,
    destCr.CruiseID AS DestCruiseID,
    srcCr.CruiseID AS SrcCruiseID
FROM {sourceAlias}.Cruise AS srcCr 
JOIN main.Cruise AS destCr USING (CruiseNumber)
WHERE srcCr.CruiseID =@p1 AND destCr.CruiseID != srcCr.CruiseID;
", cruiseID).ToArray());
            }
            finally
            {
                destination.DetachDB(sourceAlias);
            }
        }
Beispiel #7
0
        public IEnumerable <SubPopulationDiffResult> DiffSubPopulationKeys(CruiseDatastore_V3 source, CruiseDatastore_V3 destination, string cruiseID)
        {
            var sourceAlias = "src";

            destination.AttachDB(source, sourceAlias);
            try
            {
                return(destination.Query <SubPopulationDiffResult>(
                           $@"SELECT   
    sp1.SubPopulationID, 
    sp1.SpeciesCode AS DestSpeciesCode,
    sp2.SpeciesCode AS SrcSpeciesCode, 
    sp1.LiveDead AS DestLiveDead,
    sp2.LiveDead AS SrcLiveDead
FROM main.SubPopulation AS sp1
JOIN {sourceAlias}.SubPopulation AS sp2 USING (SubPopulationID)
WHERE sp1.CruiseID = @p1 AND sp1.SpeciesCode != sp2.SpeciesCode OR sp1.LiveDead != sp2.LiveDead;", cruiseID).ToArray());
            }
            finally
            {
                destination.DetachDB(sourceAlias);
            }
        }