feat(04-01): add Phase 4 models, interfaces, BulkOperationRunner, and test scaffolds
- Install CsvHelper 33.1.0 and Microsoft.Graph 5.74.0 (main + test projects) - Add 14 core model/enum files (BulkOperationResult, BulkMemberRow, BulkSiteRow, TransferJob, FolderStructureRow, SiteTemplate, SiteTemplateOptions, TemplateLibraryInfo, TemplateFolderInfo, TemplatePermissionGroup, ConflictPolicy, TransferMode, CsvValidationRow) - Add 6 service interfaces (IFileTransferService, IBulkMemberService, IBulkSiteService, ITemplateService, IFolderStructureService, ICsvValidationService) - Add BulkOperationRunner with continue-on-error and cancellation support - Add BulkResultCsvExportService stub (compile-ready) - Add test scaffolds: BulkOperationRunnerTests (5 passing), BulkResultCsvExportServiceTests (2 passing), CsvValidationServiceTests (6 skipped), TemplateRepositoryTests (4 skipped)
This commit is contained in:
25
SharepointToolbox/Core/Models/CsvValidationRow.cs
Normal file
25
SharepointToolbox/Core/Models/CsvValidationRow.cs
Normal file
@@ -0,0 +1,25 @@
|
||||
namespace SharepointToolbox.Core.Models;
|
||||
|
||||
public class CsvValidationRow<T>
|
||||
{
|
||||
public T? Record { get; }
|
||||
public bool IsValid => Errors.Count == 0;
|
||||
public List<string> Errors { get; }
|
||||
public string? RawRecord { get; }
|
||||
|
||||
public CsvValidationRow(T record, List<string> errors)
|
||||
{
|
||||
Record = record;
|
||||
Errors = errors;
|
||||
}
|
||||
|
||||
private CsvValidationRow(string rawRecord, string parseError)
|
||||
{
|
||||
Record = default;
|
||||
RawRecord = rawRecord;
|
||||
Errors = new List<string> { parseError };
|
||||
}
|
||||
|
||||
public static CsvValidationRow<T> ParseError(string? rawRecord, string error)
|
||||
=> new(rawRecord ?? string.Empty, error);
|
||||
}
|
||||
Reference in New Issue
Block a user