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

FileRequestRepository

using kCura.WinEDDS.Exporters; using Relativity.DataExchange.Export.VolumeManagerV2.Download; using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.Linq; namespace Relativity.DataExchange.Export.VolumeManagerV2.Repository { public class FileRequestRepository : IClearable { private readonly ConcurrentDictionary<int, FileRequest<ObjectExportInfo>> _filesByArtifactIdDictionary; public FileRequestRepository() { _filesByArtifactIdDictionary = new ConcurrentDictionary<int, FileRequest<ObjectExportInfo>>(); } public void Add(FileRequest<ObjectExportInfo> file) { _filesByArtifactIdDictionary[file.Artifact.ArtifactID] = file; } public FileRequest<ObjectExportInfo> GetFileRequest(int artifactId) { _filesByArtifactIdDictionary.TryGetValue(artifactId, out FileRequest<ObjectExportInfo> value); return value; } public IList<FileRequest<ObjectExportInfo>> GetFileRequestByDestinationLocation(string destinationLocation) { string trimmedDestinationLocation = (destinationLocation != null) ? destinationLocation.TrimEnd(Array.Empty<char>()) : string.Empty; return _filesByArtifactIdDictionary.Values.Where(delegate(FileRequest<ObjectExportInfo> x) { if (x.ExportRequest?.DestinationLocation != null) return string.Compare(x.ExportRequest.DestinationLocation.TrimEnd(Array.Empty<char>()), trimmedDestinationLocation, StringComparison.OrdinalIgnoreCase) == 0; return false; }).ToList(); } public IList<FileRequest<ObjectExportInfo>> GetFileRequests() { return _filesByArtifactIdDictionary.Values.ToList(); } public IEnumerable<ExportRequest> GetExportRequests() { return from x in _filesByArtifactIdDictionary.Values where !x.TransferCompleted select x.ExportRequest; } public bool AnyRequestForLocation(string destinationLocation) { if (string.IsNullOrWhiteSpace(destinationLocation)) return false; return GetFileRequestByDestinationLocation(destinationLocation).Any((FileRequest<ObjectExportInfo> x) => !x.TransferCompleted); } public void Clear() { _filesByArtifactIdDictionary.Clear(); } } }