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

PreviewLoadFileProcess

using Relativity.DataExchange; using Relativity.DataExchange.Io; using Relativity.DataExchange.Logger; using Relativity.DataExchange.Process; using Relativity.Logging; using System; using System.Collections; using System.Runtime.CompilerServices; namespace kCura.WinEDDS { public class PreviewLoadFileProcess : ProcessBase2 { public LoadFile LoadFile; [CompilerGenerated] [AccessedThroughProperty("_loadFilePreviewer")] private LoadFilePreviewer __loadFilePreviewer; [CompilerGenerated] [AccessedThroughProperty("_IoReporterContext")] private IoReporterContext __IoReporterContext; private bool _errorsOnly; private int _timeZoneOffset; private int _formType; private DateTime StartTime; [CompilerGenerated] [AccessedThroughProperty("_valueThrower")] private ValueThrower __valueThrower; public Hashtable ReturnValueCollection; public Guid ReturnValueKey; private readonly Func<string> _correlationIdFunc; protected virtual LoadFilePreviewer _loadFilePreviewer { [CompilerGenerated] get { return __loadFilePreviewer; } [MethodImpl(MethodImplOptions.Synchronized)] [CompilerGenerated] set { LoadFilePreviewer.OnEventEventHandler obj = _loadFilePreviewer_OnEvent; LoadFilePreviewer _loadFilePreviewer = __loadFilePreviewer; if (_loadFilePreviewer != null) _loadFilePreviewer.OnEvent -= obj; __loadFilePreviewer = value; _loadFilePreviewer = __loadFilePreviewer; if (_loadFilePreviewer != null) _loadFilePreviewer.OnEvent += obj; } } protected virtual IoReporterContext _IoReporterContext { [CompilerGenerated] get { return __IoReporterContext; } [MethodImpl(MethodImplOptions.Synchronized)] [CompilerGenerated] set { EventHandler<IoWarningEventArgs> value2 = _loadFileImporter_IoErrorEvent; IoReporterContext _IoReporterContext = __IoReporterContext; if (_IoReporterContext != null) _IoReporterContext.IoWarningEvent -= value2; __IoReporterContext = value; _IoReporterContext = __IoReporterContext; if (_IoReporterContext != null) _IoReporterContext.IoWarningEvent += value2; } } [field: AccessedThroughProperty("_valueThrower")] private virtual ValueThrower _valueThrower { get; [MethodImpl(MethodImplOptions.Synchronized)] set; } public int TimeZoneOffset { get { return _timeZoneOffset; } set { _timeZoneOffset = value; } } public bool ErrorsOnly { get { return _errorsOnly; } set { _errorsOnly = value; } } public ValueThrower Thrower { get { return _valueThrower; } set { _valueThrower = value; } } [Obsolete("This constructor is marked for deprecation. Please use the constructor that requires a logger instance.")] public PreviewLoadFileProcess(int formType, Func<string> correlationIdFunc) : this(formType, RelativityLogger.Instance, correlationIdFunc) { } public PreviewLoadFileProcess(int formType, ILog logger, Func<string> correlationIdFunc) : base(logger) { _formType = formType; _correlationIdFunc = correlationIdFunc; } protected override void OnExecute() { _IoReporterContext = new IoReporterContext(base.FileSystem, base.AppSettings, new WaitAndRetryPolicy(base.AppSettings)); IIoReporter reporter = CreateIoReporter(_IoReporterContext); _loadFilePreviewer = new LoadFilePreviewer(LoadFile, reporter, base.Logger, _timeZoneOffset, _errorsOnly, true, base.CancellationTokenSource, _correlationIdFunc, base.Context); _valueThrower.ThrowValue(new object[2] { _loadFilePreviewer.ReadFile(LoadFile.FilePath, _formType), _errorsOnly }); base.Context.PublishProcessCompleted(true); } private void _loadFilePreviewer_OnEvent(LoadFilePreviewer.EventArgs e) { lock (base.Context) { string totalBytesDisplay = FileSizeHelper.ConvertBytesNumberToDisplayString(e.TotalBytes); string processedBytesDisplay = FileSizeHelper.ConvertBytesNumberToDisplayString(e.BytesRead); switch (e.Type) { case LoadFilePreviewer.EventType.Begin: StartTime = DateTime.Now; break; case LoadFilePreviewer.EventType.Complete: if (e.BytesRead == -1) base.Context.PublishProgressInBytes(e.TotalBytes, e.TotalBytes, StartTime, DateTime.Now, base.ProcessId, $"""{base.AppSettings.PreviewThreshold}""", base.AppSettings.PreviewThreshold.ToString()); else base.Context.PublishProgressInBytes(e.TotalBytes, e.TotalBytes, StartTime, DateTime.Now, base.ProcessId, totalBytesDisplay, processedBytesDisplay); break; case LoadFilePreviewer.EventType.Progress: base.Context.PublishProgressInBytes(e.TotalBytes, e.BytesRead, StartTime, DateTime.Now, base.ProcessId, totalBytesDisplay, processedBytesDisplay); base.Context.PublishStatusEvent(string.Empty, "Preparing file for preview"); break; } } } private void _loadFileImporter_IoErrorEvent(object sender, IoWarningEventArgs e) { lock (base.Context) { base.Context.PublishWarningEvent(checked(e.CurrentLineNumber + 1).ToString(), e.Message); } } } }