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); } }
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); } }
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); } }
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); } }
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); } }
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); } }
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); } }