Initial commit: JDE Scoping Tool migration project
Set up repository with legacy .NET Framework 4.8 source (OLD/), new .NET 10 Blazor solution (NEW/), OpenSpec specifications, documentation, and project configuration.
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
using JdeScoping.Core.Models.Infrastructure;
|
||||
|
||||
namespace JdeScoping.Core.Interfaces;
|
||||
|
||||
/// <summary>
|
||||
/// Data sync operations for LotFinder SQL Server cache database.
|
||||
/// </summary>
|
||||
public partial interface ILotFinderRepository
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets the latest data update record per table/type combination.
|
||||
/// </summary>
|
||||
/// <param name="ct">Cancellation token.</param>
|
||||
/// <returns>Latest data updates.</returns>
|
||||
Task<List<DataUpdate>> GetLastDataUpdatesAsync(CancellationToken ct = default);
|
||||
|
||||
/// <summary>
|
||||
/// Gets table schema specification for dynamic SQL generation.
|
||||
/// </summary>
|
||||
/// <param name="tableName">Table name.</param>
|
||||
/// <param name="ct">Cancellation token.</param>
|
||||
/// <returns>Table specification with columns and primary key.</returns>
|
||||
Task<TableSpec> GetTableSpecAsync(string tableName, CancellationToken ct = default);
|
||||
|
||||
/// <summary>
|
||||
/// Rebuilds all indices on a table with fillfactor of 95.
|
||||
/// Table name is validated against whitelist for SQL injection prevention.
|
||||
/// </summary>
|
||||
/// <param name="tableName">Table name (must be in whitelist).</param>
|
||||
/// <param name="ct">Cancellation token.</param>
|
||||
/// <exception cref="ArgumentException">Thrown if table name is not in whitelist.</exception>
|
||||
Task RebuildIndicesAsync(string tableName, CancellationToken ct = default);
|
||||
|
||||
/// <summary>
|
||||
/// Post-processes imported MIS data to set obsolete dates.
|
||||
/// </summary>
|
||||
/// <param name="ct">Cancellation token.</param>
|
||||
Task PostProcessMisDataAsync(CancellationToken ct = default);
|
||||
|
||||
/// <summary>
|
||||
/// Performs bulk insert of records into a table.
|
||||
/// </summary>
|
||||
/// <typeparam name="T">Record type.</typeparam>
|
||||
/// <param name="tableName">Target table name.</param>
|
||||
/// <param name="records">Records to insert.</param>
|
||||
/// <param name="ct">Cancellation token.</param>
|
||||
/// <returns>Number of records inserted.</returns>
|
||||
Task<int> BulkInsertAsync<T>(string tableName, IEnumerable<T> records, CancellationToken ct = default);
|
||||
|
||||
/// <summary>
|
||||
/// Truncates a table, removing all records.
|
||||
/// </summary>
|
||||
/// <param name="tableName">Table name.</param>
|
||||
/// <param name="ct">Cancellation token.</param>
|
||||
Task TruncateTableAsync(string tableName, CancellationToken ct = default);
|
||||
}
|
||||
Reference in New Issue
Block a user