NotTooLongTextToLoadFile
using kCura.WinEDDS;
using kCura.WinEDDS.Exporters;
using kCura.WinEDDS.LoadFileEntry;
using Relativity.DataExchange.Export.VolumeManagerV2.Metadata.Writers;
using Relativity.DataExchange.Logger;
using Relativity.Logging;
using System.IO;
using System.Text;
namespace Relativity.DataExchange.Export.VolumeManagerV2.Metadata.Text
{
public class NotTooLongTextToLoadFile : ILongTextHandler
{
private readonly ExportFile _exportSettings;
private readonly LongTextHelper _longTextHelper;
private readonly FromFieldToLoadFileWriter _fileWriter;
private readonly ILog _logger;
public NotTooLongTextToLoadFile(LongTextHelper longTextHelper, FromFieldToLoadFileWriter fileWriter, ILog logger, ExportFile exportSettings)
{
_longTextHelper = longTextHelper;
_fileWriter = fileWriter;
_logger = logger;
_exportSettings = exportSettings;
}
public void HandleLongText(ObjectExportInfo artifact, ViewFieldInfo field, DeferredEntry lineEntry)
{
_logger.LogVerbose("Writing text from memory to memory stream for formatting. Passing value to line entry. Field {fieldName}.", new object[1] {
field.AvfColumnName.Secure()
});
using (MemoryStream memoryStream = new MemoryStream())
using (StreamWriter streamWriter = new StreamWriter(memoryStream, _exportSettings.LoadFileEncoding)) {
string textFromField = _longTextHelper.GetTextFromField(artifact, field.AvfColumnName);
_fileWriter.WriteLongTextFileToDatFile(streamWriter, textFromField, Encoding.Default);
streamWriter.Flush();
memoryStream.Position = 0;
using (StreamReader streamReader = new StreamReader(memoryStream, _exportSettings.LoadFileEncoding)) {
string partialEntry = streamReader.ReadToEnd();
lineEntry.AddStringEntry(partialEntry);
}
}
}
}
}