TooLongTextToLoadFile
using Castle.Core;
using kCura.WinEDDS;
using kCura.WinEDDS.Exporters;
using kCura.WinEDDS.LoadFileEntry;
using Relativity.DataExchange.Export.VolumeManagerV2.Metadata.Writers;
using Relativity.DataExchange.Export.VolumeManagerV2.Repository;
using Relativity.DataExchange.Logger;
using Relativity.Logging;
namespace Relativity.DataExchange.Export.VolumeManagerV2.Metadata.Text
{
public class TooLongTextToLoadFile : ILongTextHandler
{
private readonly LongTextHelper _longTextHelper;
private readonly LongTextRepository _longTextRepository;
private readonly ILongTextEntryWriter _fileWriter;
private readonly ILog _logger;
public TooLongTextToLoadFile(LongTextHelper longTextHelper, LongTextRepository longTextRepository, FromFileToLoadFileWriter fileWriter, ILog logger)
: this(longTextHelper, longTextRepository, (ILongTextEntryWriter)fileWriter, logger)
{
}
[DoNotSelect]
public TooLongTextToLoadFile(LongTextHelper longTextHelper, LongTextRepository longTextRepository, ILongTextEntryWriter fileWriter, ILog logger)
{
_longTextHelper = longTextHelper;
_longTextRepository = longTextRepository;
_fileWriter = fileWriter;
_logger = logger;
}
public void HandleLongText(ObjectExportInfo artifact, ViewFieldInfo field, DeferredEntry lineEntry)
{
ViewFieldInfo viewFieldInfo = (!(field is CoalescedTextViewField)) ? field : _longTextHelper.GetTextPrecedenceTrueField(artifact, field);
_logger.LogVerbose("Passing LongText file location to writer for future processing. Field {fieldName} (field used for Text Precedence {name}.", new object[2] {
field.AvfColumnName.Secure(),
viewFieldInfo.AvfColumnName.Secure()
});
string longTextFileLocation = _longTextHelper.GetLongTextFileLocation(artifact, viewFieldInfo.FieldArtifactId);
LongText longText = _longTextRepository.GetLongText(artifact.ArtifactID, viewFieldInfo.FieldArtifactId);
lineEntry.AddPartialEntry(new LongTextWriteDeferredEntry(longTextFileLocation, longText.DestinationEncoding, _fileWriter));
}
}
}