mirror of
https://github.com/ajisaacs/OpenNest.git
synced 2026-10-27 12:41:06 -04:00
Roslyn duplicate scans found the same code copied across layers: - Data: the three browse sessions share BrowseSession<TPage, TSort>; the remote clients share NestServerHttp (JSON options, If-Match, error text). - WinForms: five paged lists share BrowsePager for loading text, navigation, sort glyphs and failure messages. The Add Drawings to Release, Drawing Library and set browser dialogs now dispose their browse sessions. - Server: NestQueryRequest reuses DrawingLibraryRequest's helpers; revision history queries share count and paging binds. - Engine: RemnantPlateNester delegates to DefaultPlateNester; CuttingPlanService reuses JointCuttingPlanSearch.Map. - Core: LineArc and CleanHole lead-ins share LineArcApproach with unchanged arithmetic order, so output is bit-identical. - IO: Dxf.GetGeometry overloads share one reader; .nest JSON test helpers move to NestArchiveJson. Also fixes the production compiler warnings (CS8632, CS8603, CS0108) and moves a test off an obsolete forwarding API. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
18 lines
596 B
C#
18 lines
596 B
C#
namespace OpenNest.Data;
|
|
|
|
/// <summary>One bounded page of drawing set records, without their members.</summary>
|
|
public sealed class DrawingSetPage : IBrowsePage
|
|
{
|
|
/// <summary>At most <see cref="Limit"/> records, in the requested order.</summary>
|
|
public IReadOnlyList<DrawingSetRecord> Items { get; init; } = Array.Empty<DrawingSetRecord>();
|
|
|
|
/// <summary>Number of records matching the request across all pages.</summary>
|
|
public int Total { get; init; }
|
|
|
|
public int Offset { get; init; }
|
|
|
|
public int Limit { get; init; }
|
|
|
|
int IBrowsePage.ItemCount => Items.Count;
|
|
}
|