- 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)
29 lines
753 B
C#
29 lines
753 B
C#
using CsvHelper.Configuration.Attributes;
|
|
|
|
namespace SharepointToolbox.Core.Models;
|
|
|
|
public class FolderStructureRow
|
|
{
|
|
[Name("Level1")]
|
|
public string Level1 { get; set; } = string.Empty;
|
|
|
|
[Name("Level2")]
|
|
public string Level2 { get; set; } = string.Empty;
|
|
|
|
[Name("Level3")]
|
|
public string Level3 { get; set; } = string.Empty;
|
|
|
|
[Name("Level4")]
|
|
public string Level4 { get; set; } = string.Empty;
|
|
|
|
/// <summary>
|
|
/// Builds the folder path from non-empty level values (e.g. "Admin/HR/Contracts").
|
|
/// </summary>
|
|
public string BuildPath()
|
|
{
|
|
var parts = new[] { Level1, Level2, Level3, Level4 }
|
|
.Where(s => !string.IsNullOrWhiteSpace(s));
|
|
return string.Join("/", parts);
|
|
}
|
|
}
|