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

ColumnsFactory

using kCura.WinEDDS; using Relativity.DataExchange.Logger; using Relativity.DataExchange.Service; using Relativity.Logging; using System; using System.Collections.Generic; using System.Linq; namespace Relativity.DataExchange.Export.VolumeManagerV2.Settings { public class ColumnsFactory : IColumnsFactory { private readonly ILog _logger; public ColumnsFactory(ILog logger) { _logger = logger; } public kCura.WinEDDS.ViewFieldInfo[] CreateColumns(ExportFile exportSettings) { _logger.LogVerbose("Creating column list for export.", Array.Empty<object>()); kCura.WinEDDS.ViewFieldInfo[] selectedViewFields = exportSettings.SelectedViewFields; kCura.WinEDDS.ViewFieldInfo[] textFields = exportSettings.SelectedTextFields; if (textFields == null || textFields.Length == 0) { _logger.LogVerbose("No long text fields selected. Continuing with provided column list.", Array.Empty<object>()); return selectedViewFields.ToArray(); } List<kCura.WinEDDS.ViewFieldInfo> list = selectedViewFields.ToList(); kCura.WinEDDS.ViewFieldInfo[] source = selectedViewFields.Where(delegate(kCura.WinEDDS.ViewFieldInfo x) { if (x.FieldType != FieldType.Text) return x.FieldType == FieldType.OffTableText; return true; }).ToArray(); if (textFields.Length == 1 && source.Any((kCura.WinEDDS.ViewFieldInfo x) => x.Equals(textFields.First()))) { kCura.WinEDDS.ViewFieldInfo viewFieldInfo = source.FirstOrDefault((kCura.WinEDDS.ViewFieldInfo x) => x.Equals(textFields.First())); if (viewFieldInfo != null) { int num = list.IndexOf(viewFieldInfo); _logger.LogVerbose("Found field {fieldToReplace} at index {index} to replace with long text field {longTextField}.", new object[3] { viewFieldInfo.AvfColumnName.Secure(), num, textFields.First().AvfColumnName.Secure() }); list[num] = new CoalescedTextViewField(textFields.First(), true); } else { _logger.LogVerbose("Adding missing CoalescedTextViewField for selected long text field {field}.", new object[1] { textFields.First().AvfColumnName.Secure() }); list.Add(new CoalescedTextViewField(textFields.First(), false)); } } else { _logger.LogVerbose("Adding missing CoalescedTextViewField for selected long text field {field}.", new object[1] { textFields.First().AvfColumnName.Secure() }); list.Add(new CoalescedTextViewField(textFields.First(), false)); } return list.ToArray(); } } }