<PackageReference Include="Relativity.Server.Import.SDK" Version="2.9.2" />

LoadFileMetadataBuilder

using kCura.WinEDDS.Exporters; using kCura.WinEDDS.LoadFileEntry; using Relativity.Logging; using System; using System.Collections.Generic; using System.Threading; namespace Relativity.DataExchange.Export.VolumeManagerV2.Metadata.Natives { public class LoadFileMetadataBuilder { private readonly LoadFileHeader _loadFileHeader; private readonly ILoadFileLine _loadFileLine; private readonly ILog _logger; public LoadFileMetadataBuilder(LoadFileHeader loadFileHeader, ILoadFileLine loadFileLine, ILog logger) { _loadFileHeader = loadFileHeader; _loadFileLine = loadFileLine; _logger = logger; } public IDictionary<int, ILoadFileEntry> AddLines(ObjectExportInfo[] artifacts, CancellationToken cancellationToken) { _logger.LogVerbose("Creating metadata for load file for current batch.", Array.Empty<object>()); IDictionary<int, ILoadFileEntry> dictionary = new Dictionary<int, ILoadFileEntry>(); _loadFileHeader.AddHeader(dictionary); foreach (ObjectExportInfo objectExportInfo in artifacts) { if (cancellationToken.IsCancellationRequested) return new Dictionary<int, ILoadFileEntry>(); _logger.LogVerbose("Adding line for artifact {artifactId}.", new object[1] { objectExportInfo.ArtifactID }); ILoadFileEntry value = _loadFileLine.CreateLine(objectExportInfo); dictionary.Add(objectExportInfo.ArtifactID, value); } _logger.LogVerbose("Metadata for load file for current batch created.", Array.Empty<object>()); return dictionary; } } }