refactor(engine): share jobs placement identity and progress mechanics

This commit is contained in:
aj
2026-09-21 16:36:24 -04:00
parent bb671cb176
commit 073ead9b79
5 changed files with 197 additions and 98 deletions
@@ -53,8 +53,7 @@ public sealed class LegacyPlateNesterAdapter : IPlateNester
var engine =
engineFactory(plate)
?? throw new InvalidOperationException("Legacy engine factory returned null.");
var legacyProgress =
progress == null ? null : new LegacyProgress(progress, request.Stock.Id);
var legacyProgress = CandidateProgressBridge.Create(progress, request.Stock.Id);
var parts = engine.Nest(items, legacyProgress, token);
token.ThrowIfCancellationRequested();
if (parts == null)
@@ -72,16 +71,4 @@ public sealed class LegacyPlateNesterAdapter : IPlateNester
}
return new PlateCandidate(placements);
}
private sealed class LegacyProgress(IProgress<NestJobProgress> progress, string stockId)
: IProgress<NestProgress>
{
public void Report(NestProgress value)
{
ArgumentNullException.ThrowIfNull(value);
progress.Report(
new NestJobProgress(NestJobStage.EvaluatingCandidate, stockId, -1, 0, 0, value)
);
}
}
}