ExportFileValidator
using kCura.WinEDDS;
using Relativity.DataExchange.Export.VolumeManagerV2.Repository;
using Relativity.DataExchange.Io;
using Relativity.DataExchange.Logger;
using Relativity.DataExchange.Process;
using Relativity.Logging;
namespace Relativity.DataExchange.Export.VolumeManagerV2.Download
{
public class ExportFileValidator : IExportFileValidator
{
private readonly ExportFile _exportSettings;
private readonly IStatus _status;
private readonly IFile _fileWrapper;
private readonly ILog _logger;
private readonly IExportRequestRepository _exportRequestRepository;
public ExportFileValidator(ExportFile exportSettings, IExportRequestRepository exportRequestRepository, IStatus status, IFile fileWrapper, ILog logger)
{
_exportSettings = exportSettings;
_exportRequestRepository = exportRequestRepository;
_status = status;
_fileWrapper = fileWrapper;
_logger = logger;
}
public bool CanExport(string destinationLocation, string warningUserMessage)
{
if (_fileWrapper.Exists(destinationLocation)) {
if (_exportSettings.Overwrite) {
_logger.LogVerbose("Overwriting document {destinationLocation}. Removing already existing file.", new object[1] {
destinationLocation.Secure()
});
_fileWrapper.Delete(destinationLocation);
_status.WriteStatusLine(EventType2.Status, warningUserMessage, false);
return true;
}
_logger.LogWarning("{destinationLocation} already exists. Skipping file export.", new object[1] {
destinationLocation.Secure()
});
_status.WriteWarning(destinationLocation + " already exists. Skipping file export.");
return false;
}
if (_exportRequestRepository.AnyRequestForLocation(destinationLocation)) {
if (_exportSettings.Overwrite) {
_logger.LogVerbose("Document {destinationLocation} already exists in current export requests for batch. Skipping file.", new object[1] {
destinationLocation.Secure()
});
_status.WriteStatusLine(EventType2.Status, warningUserMessage, false);
} else {
_logger.LogWarning("{destinationLocation} already exists. Skipping file export.", new object[1] {
destinationLocation.Secure()
});
_status.WriteWarning(destinationLocation + " already exists. Skipping file export.");
}
return false;
}
return true;
}
}
}