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

ImageRepository

public class ImageRepository : IClearable
using Relativity.DataExchange.Export.VolumeManagerV2.Download; using System; using System.Collections.Generic; using System.Linq; namespace Relativity.DataExchange.Export.VolumeManagerV2.Repository { public class ImageRepository : IClearable { private List<ImageRequest> _images; private readonly object _syncLock = new object(); public ImageRepository() { _images = new List<ImageRequest>(); } public void Add(IList<ImageRequest> images) { lock (_syncLock) { _images.AddRange(images); } } public ImageRequest GetImage(int artifactId, string batesNumber) { lock (_syncLock) { return _images.FirstOrDefault(delegate(ImageRequest x) { if (x.Artifact.ArtifactID == artifactId) return string.Compare(x.Artifact.BatesNumber, batesNumber, StringComparison.OrdinalIgnoreCase) == 0; return false; }); } } public IList<ImageRequest> GetImagesByTargetFile(string targetFile) { lock (_syncLock) { string trimmedTargetFile = (targetFile != null) ? targetFile.TrimEnd(Array.Empty<char>()) : string.Empty; return _images.Where(delegate(ImageRequest x) { if (x.ExportRequest?.DestinationLocation != null) return string.Compare(x.ExportRequest.DestinationLocation.TrimEnd(Array.Empty<char>()), trimmedTargetFile, StringComparison.OrdinalIgnoreCase) == 0; return false; }).ToList(); } } public IList<ImageRequest> GetArtifactImages(int artifactId) { lock (_syncLock) { return (from x in _images where x.Artifact.ArtifactID == artifactId select x).ToList(); } } public IList<ImageRequest> GetImages() { lock (_syncLock) { return _images; } } public IEnumerable<ExportRequest> GetExportRequests() { lock (_syncLock) { return from x in _images where !x.TransferCompleted select x.ExportRequest; } } public bool AnyRequestForLocation(string destinationLocation) { if (string.IsNullOrWhiteSpace(destinationLocation)) return false; lock (_syncLock) { return GetExportRequests().Any((ExportRequest x) => string.Compare(x.DestinationLocation, destinationLocation, StringComparison.OrdinalIgnoreCase) == 0); } } public void Clear() { lock (_syncLock) { _images = new List<ImageRequest>(); } } } }