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

FieldValueHelper

public sealed class FieldValueHelper
using Microsoft.VisualBasic.CompilerServices; using Relativity.DataExchange; using Relativity.DataExchange.Service; using System; using System.Globalization; using System.IO; using System.Runtime.CompilerServices; using System.Text; using System.Web; using System.Xml; namespace kCura.WinEDDS.Helpers { [StandardModule] public sealed class FieldValueHelper { public static string ConvertToString(object val, ViewFieldInfo field, char multiRecordDelimiter) { if (val is byte[]) val = Encoding.Unicode.GetString((byte[])val); if (field.FieldType == FieldType.Date && field.Category != FieldCategory.MultiReflected) { if (val == DBNull.Value) val = string.Empty; else if (val is DateTime) { val = ((DateTime)val).ToString(field.FormatString); } } string text = NullableTypesHelper.ToEmptyStringOrValue(NullableTypesHelper.DBNullString(RuntimeHelpers.GetObjectValue(val))); if (field.IsMultiValueField) text = GetMultivalueString(text, field, multiRecordDelimiter); else if (field.IsCodeOrMulticodeField) { text = GetCodeValueString(text, multiRecordDelimiter); } return text; } public static string GetMultivalueString(string input, ViewFieldInfo field, char multiRecordDelimiter) { string result = input; if (input.Contains("<object>")) { XmlTextReader xmlTextReader = new XmlTextReader(new StringReader("<objects>" + input + "</objects>")); bool flag = true; StringBuilder stringBuilder = new StringBuilder(); while (xmlTextReader.Read()) { if ((Operators.CompareString(xmlTextReader.Name, "object", false) == 0) & xmlTextReader.IsStartElement()) { xmlTextReader.Read(); if (flag) flag = false; else stringBuilder.Append(multiRecordDelimiter); string text = xmlTextReader.Value.Trim(); switch (field.FieldType) { case FieldType.Code: case FieldType.MultiCode: text = GetCodeValueString(text, multiRecordDelimiter); break; case FieldType.Date: text = ToExportableDateString(text, field.FormatString); break; } stringBuilder.Append(text); } } xmlTextReader.Close(); result = stringBuilder.ToString(); } return result; } public static string GetCodeValueString(string input, char multiRecordDelimiter) { input = HttpUtility.HtmlDecode(input); input = input.Trim(new char[1] { ' ' }).Replace(' ', multiRecordDelimiter); return input; } public static string ToExportableDateString(object val, string formatString) { string text = NullableTypesHelper.DBNullString(RuntimeHelpers.GetObjectValue(val)); if (text != null && Operators.CompareString(text.Trim(), "", false) != 0) return DateTime.Parse(text, CultureInfo.InvariantCulture).ToString(formatString); return ""; } } }