ImportLoadFileProcess
using kCura.EDDS.WebAPI.AuditManagerBase;
using kCura.EDDS.WebAPI.BulkImportManagerBase;
using kCura.WinEDDS.Api;
using kCura.WinEDDS.Service;
using Microsoft.VisualBasic.CompilerServices;
using Monitoring;
using Monitoring.Sinks;
using Relativity.DataExchange;
using Relativity.DataExchange.Io;
using Relativity.DataExchange.Logger;
using Relativity.DataExchange.Process;
using Relativity.DataExchange.Service;
using Relativity.DataExchange.Transfer;
using Relativity.Logging;
using System;
using System.Collections;
using System.IO;
using System.Runtime.CompilerServices;
namespace kCura.WinEDDS
{
public class ImportLoadFileProcess : MonitoredProcessBase
{
public LoadFile LoadFile;
[CompilerGenerated]
[AccessedThroughProperty("_loadFileImporter")]
private BulkLoadFileImporter __loadFileImporter;
[CompilerGenerated]
[AccessedThroughProperty("_IoReporterContext")]
private IoReporterContext __IoReporterContext;
private int _errorCount;
private int _perBatchErrorCount;
private int _warningCount;
private int _timeZoneOffset;
private string _uploadModeText;
private bool _disableUserSecutityCheck;
private bool? _disableNativeValidation;
private bool? _disableNativeLocationValidation;
private ImportAuditLevel _auditLevel;
[CompilerGenerated]
private TelemetryConstants.TransferDirection _TransferDirection;
[CompilerGenerated]
private bool _OIFileIdMapped;
[CompilerGenerated]
private string _OIFileIdColumnName;
[CompilerGenerated]
private string _OIFileTypeColumnName;
[CompilerGenerated]
private bool _FileSizeMapped;
[CompilerGenerated]
private string _FileSizeColumn;
[CompilerGenerated]
private string _FileNameColumn;
[CompilerGenerated]
private string _SupportedByViewerColumn;
[CompilerGenerated]
private bool _DisableExtractedTextFileLocationValidation;
[CompilerGenerated]
private int? _MaximumErrorCount;
[CompilerGenerated]
private bool? _SkipExtractedTextEncodingCheck;
[CompilerGenerated]
private bool _LoadImportedFullTextFromServer;
[CompilerGenerated]
private string _BulkLoadFileFieldDelimiter;
[CompilerGenerated]
private bool _CloudInstance;
private bool isDisposed;
protected virtual BulkLoadFileImporter _loadFileImporter {
[CompilerGenerated]
get {
return __loadFileImporter;
}
[MethodImpl(MethodImplOptions.Synchronized)]
[CompilerGenerated]
set {
BulkLoadFileImporter.FieldMappedEventHandler obj = _loadFileImporter_FieldMapped;
BulkLoadFileImporter.StatusMessageEventHandler obj2 = _loadFileImporter_StatusMessage;
BulkLoadFileImporter.FatalErrorEventEventHandler obj3 = _loadFileImporter_FatalErrorEvent;
ImportTapiBase.UploadModeChangeEventEventHandler obj4 = _loadFileImporter_UploadModeChangeEvent;
BulkLoadFileImporter.DataSourcePrepEventEventHandler obj5 = _loadFileImporter_DataSourcePrepEvent;
BulkLoadFileImporter.ReportErrorEventEventHandler obj6 = _loadFileImporter_ReportErrorEvent;
BulkLoadFileImporter.EndFileImportEventHandler obj7 = _loadFileImporter_EndFileImport;
ImportTapiBase.BatchCompletedEventHandler obj8 = _loadFileImporter_OnBatchCompleted;
BulkLoadFileImporter _loadFileImporter = __loadFileImporter;
if (_loadFileImporter != null) {
_loadFileImporter.FieldMapped -= obj;
_loadFileImporter.StatusMessage -= obj2;
_loadFileImporter.FatalErrorEvent -= obj3;
_loadFileImporter.UploadModeChangeEvent -= obj4;
_loadFileImporter.DataSourcePrepEvent -= obj5;
_loadFileImporter.ReportErrorEvent -= obj6;
_loadFileImporter.EndFileImport -= obj7;
_loadFileImporter.BatchCompleted -= obj8;
}
__loadFileImporter = value;
_loadFileImporter = __loadFileImporter;
if (_loadFileImporter != null) {
_loadFileImporter.FieldMapped += obj;
_loadFileImporter.StatusMessage += obj2;
_loadFileImporter.FatalErrorEvent += obj3;
_loadFileImporter.UploadModeChangeEvent += obj4;
_loadFileImporter.DataSourcePrepEvent += obj5;
_loadFileImporter.ReportErrorEvent += obj6;
_loadFileImporter.EndFileImport += obj7;
_loadFileImporter.BatchCompleted += obj8;
}
}
}
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;
}
}
public bool DisableNativeValidation {
set {
_disableNativeValidation = value;
}
}
public bool DisableNativeLocationValidation {
set {
_disableNativeLocationValidation = value;
}
}
protected override TelemetryConstants.TransferDirection TransferDirection { get; }
protected override TapiClient TapiClient {
get {
if (_loadFileImporter != null)
return _loadFileImporter.TapiClient;
return TapiClient.None;
}
}
private ImportStatistics ImportStatistics => _loadFileImporter.Statistics;
protected override Statistics Statistics => ImportStatistics;
public bool OIFileIdMapped { get; set; }
public string OIFileIdColumnName { get; set; }
public string OIFileTypeColumnName { get; set; }
public bool FileSizeMapped { get; set; }
public string FileSizeColumn { get; set; }
public string FileNameColumn { get; set; }
public string SupportedByViewerColumn { get; set; }
public bool DisableUserSecurityCheck {
set {
_disableUserSecutityCheck = value;
}
}
public ImportAuditLevel AuditLevel {
set {
_auditLevel = value;
}
}
public bool DisableExtractedTextFileLocationValidation { get; set; }
public int? MaximumErrorCount { get; set; }
public bool? SkipExtractedTextEncodingCheck { get; set; }
public bool LoadImportedFullTextFromServer { get; set; }
public string BulkLoadFileFieldDelimiter { get; set; }
public bool CloudInstance { get; set; }
public int TimeZoneOffset {
get {
return _timeZoneOffset;
}
set {
_timeZoneOffset = value;
}
}
[Obsolete("This constructor is marked for deprecation. Please use the constructor that requires a logger instance.")]
public ImportLoadFileProcess(Func<string> correlationIdFunc)
: this(new MetricService(new ImportApiMetricSinkConfig()), new RunningContext(), correlationIdFunc)
{
}
[Obsolete("This constructor is marked for deprecation. Please use the constructor that requires a logger instance.")]
public ImportLoadFileProcess(IMetricService metricService, IRunningContext runningContext, Func<string> correlationIdFunc)
: this(metricService, runningContext, RelativityLogger.Instance, correlationIdFunc)
{
}
public ImportLoadFileProcess(IMetricService metricService, IRunningContext runningContext, ILog logger, Func<string> correlationIdFunc)
: base(metricService, runningContext, logger, correlationIdFunc)
{
_uploadModeText = null;
_auditLevel = Config.AuditLevel;
_TransferDirection = TelemetryConstants.TransferDirection.Import;
}
public virtual BulkLoadFileImporter GetImporter()
{
_IoReporterContext = new IoReporterContext(base.FileSystem, base.AppSettings, new WaitAndRetryPolicy(base.AppSettings));
IIoReporter reporter = CreateIoReporter(_IoReporterContext);
return new BulkLoadFileImporter(LoadFile, base.Context, reporter, base.Logger, _timeZoneOffset, true, base.ProcessId, true, BulkLoadFileFieldDelimiter, base.CancellationTokenSource, _correlationIdFunc, base.RunningContext);
}
protected override long GetTotalRecordsCount()
{
return _loadFileImporter.TotalRecords;
}
protected override long GetCompletedRecordsCount()
{
return _loadFileImporter.CompletedRecords;
}
protected override void OnSuccess()
{
base.OnSuccess();
base.Context.PublishProcessCompleted(false, "", true);
}
protected override void OnHasErrors()
{
base.OnHasErrors();
base.Context.PublishProcessCompleted(false, Guid.NewGuid().ToString(), true);
}
protected override bool HasErrors()
{
return _loadFileImporter.HasErrors;
}
protected override bool IsCancelled()
{
return _loadFileImporter.IsCancelledByUser;
}
protected override bool Run()
{
bool result = Conversions.ToBoolean(_loadFileImporter.ReadFile(LoadFile.FilePath)) && !_hasFatalErrorOccured;
base.RunId = _loadFileImporter.RunId;
return result;
}
protected override void Initialize()
{
base.Initialize();
_warningCount = 0;
_errorCount = 0;
_perBatchErrorCount = 0;
_loadFileImporter = GetImporter();
if (_disableNativeValidation.HasValue)
_loadFileImporter.DisableNativeValidation = _disableNativeValidation.Value;
if (_disableNativeLocationValidation.HasValue)
_loadFileImporter.DisableNativeLocationValidation = _disableNativeLocationValidation.Value;
if (MaximumErrorCount.HasValue && MaximumErrorCount.Value > 0 && MaximumErrorCount.Value < 2147483647)
_loadFileImporter.MaxNumberOfErrorsInGrid = checked(MaximumErrorCount.Value + 1);
if (SkipExtractedTextEncodingCheck.HasValue && SkipExtractedTextEncodingCheck.GetValueOrDefault())
_loadFileImporter.SkipExtractedTextEncodingCheck = true;
_loadFileImporter.SkipExtractedTextEncodingCheck = (_loadFileImporter.SkipExtractedTextEncodingCheck || base.AppSettings.DisableTextFileEncodingCheck);
_loadFileImporter.DisableExtractedTextFileLocationValidation = DisableExtractedTextFileLocationValidation;
_loadFileImporter.AuditLevel = _auditLevel;
_loadFileImporter.DisableUserSecurityCheck = _disableUserSecutityCheck;
_loadFileImporter.OIFileIdColumnName = OIFileIdColumnName;
_loadFileImporter.OIFileIdMapped = OIFileIdMapped;
_loadFileImporter.OIFileTypeColumnName = OIFileTypeColumnName;
_loadFileImporter.FileSizeColumn = FileSizeColumn;
_loadFileImporter.FileSizeMapped = FileSizeMapped;
_loadFileImporter.FileNameColumn = FileNameColumn;
_loadFileImporter.SupportedByViewerColumn = SupportedByViewerColumn;
_loadFileImporter.LoadImportedFullTextFromServer = (LoadImportedFullTextFromServer || base.AppSettings.LoadImportedFullTextFromServer);
base.Context.InputArgs = LoadFile.FilePath;
}
protected override void SetBaseMetrics(MetricJobBase metric)
{
base.SetBaseMetrics(metric);
metric.ImportObjectType = ImportStatistics.ImportObjectType;
}
protected override MetricJobStarted BuildStartMetric()
{
MetricJobStarted metricJobStarted = base.BuildStartMetric();
metricJobStarted.CustomData["OverwriteDestination"] = LoadFile.OverwriteDestination;
metricJobStarted.CustomData["RunId"] = _loadFileImporter.RunId;
metricJobStarted.CustomData["DestinationFolderID"] = LoadFile.DestinationFolderID;
metricJobStarted.CustomData["FirstLineContainsHeaders"] = LoadFile.FirstLineContainsHeaders;
metricJobStarted.CustomData["LoadNativeFiles"] = LoadFile.LoadNativeFiles;
metricJobStarted.CustomData["RecordDelimiter"] = LoadFile.RecordDelimiter;
metricJobStarted.CustomData["QuoteDelimiter"] = LoadFile.QuoteDelimiter;
metricJobStarted.CustomData["NewlineDelimiter"] = LoadFile.NewlineDelimiter;
metricJobStarted.CustomData["MultiRecordDelimiter"] = LoadFile.MultiRecordDelimiter;
metricJobStarted.CustomData["HierarchicalValueDelimiter"] = LoadFile.HierarchicalValueDelimiter;
metricJobStarted.CustomData["ArtifactTypeID"] = LoadFile.ArtifactTypeID;
metricJobStarted.CustomData["StartLineNumber"] = LoadFile.StartLineNumber;
metricJobStarted.CustomData["IdentityFieldId"] = LoadFile.IdentityFieldId;
metricJobStarted.CustomData["SendEmailOnLoadCompletion"] = LoadFile.SendEmailOnLoadCompletion;
metricJobStarted.CustomData["ForceFolderPreview"] = LoadFile.ForceFolderPreview;
metricJobStarted.CustomData["OIFileIdMapped"] = LoadFile.OIFileIdMapped;
metricJobStarted.CustomData["FileSizeMapped"] = LoadFile.FileSizeMapped;
metricJobStarted.CustomData["MoveDocumentsInAppendOverlayMode"] = LoadFile.MoveDocumentsInAppendOverlayMode;
metricJobStarted.CustomData["Billable"] = LoadFile.Billable;
metricJobStarted.CustomData["TotalMappedFieldsCount"] = LoadFile.FieldMap.Count;
metricJobStarted.CustomData["OverlayBehavior"] = LoadFile.OverlayBehavior;
metricJobStarted.CustomData["IsFolderIncluded"] = LoadFile.CreateFolderStructure;
metricJobStarted.CustomData["IsExtractedTextIncluded"] = (LoadFile.ExtractedTextFileEncoding != null);
string longTextColumnThatContainsPathToFullText = LoadFile.LongTextColumnThatContainsPathToFullText;
DocumentField[] documentFields = LoadFile.FieldMap.DocumentFields;
checked {
int num = default(int);
int num2 = default(int);
int num3 = default(int);
int num4 = default(int);
int num5 = default(int);
foreach (DocumentField documentField in documentFields) {
if (documentField.FieldCategory == global::Relativity.DataExchange.Service.FieldCategory.FullText) {
num++;
if (Operators.CompareString(documentField.FieldName, longTextColumnThatContainsPathToFullText, false) == 0)
metricJobStarted.CustomData["IsExtractedTextDataGridEnabled"] = documentField.EnableDataGrid;
} else if (documentField.FieldTypeID == 10) {
num2++;
} else if (documentField.FieldTypeID == 13) {
num3++;
} else if (documentField.FieldTypeID == 5) {
num4++;
} else if (documentField.FieldTypeID == 8) {
num5++;
}
}
metricJobStarted.CustomData["FullTextsCount"] = num;
metricJobStarted.CustomData["SingleObjectsCount"] = num2;
metricJobStarted.CustomData["MultiObjectsCount"] = num3;
metricJobStarted.CustomData["SingleChoicesCount"] = num4;
metricJobStarted.CustomData["MultiChoicesCount"] = num5;
return metricJobStarted;
}
}
protected override MetricJobProgress BuildProgressMetric(Statistics statistics)
{
MetricJobProgress metricJobProgress = base.BuildProgressMetric(statistics);
ImportStatistics importStatistics = statistics as ImportStatistics;
if (importStatistics != null) {
metricJobProgress.SqlBulkLoadThroughputRecordsPerSecond = Statistics.CalculateThroughput(checked(importStatistics.DocumentsCreated + importStatistics.DocumentsUpdated), statistics.MassImportDuration.TotalSeconds);
return metricJobProgress;
}
base.Logger.LogWarning("Unable to parse ImportStatistics in BuildProgressMetric", new object[0]);
return metricJobProgress;
}
protected override MetricJobEndReport BuildEndMetric(TelemetryConstants.JobStatus jobStatus)
{
MetricJobEndReport metricJobEndReport = base.BuildEndMetric(jobStatus);
metricJobEndReport.SqlBulkLoadThroughputRecordsPerSecond = Statistics.CalculateThroughput(checked(ImportStatistics.DocumentsCreated + ImportStatistics.DocumentsUpdated), Statistics.MassImportDuration.TotalSeconds);
return metricJobEndReport;
}
private void AuditRun(string runID)
{
try {
ObjectImportStatistics objectImportStatistics = new ObjectImportStatistics();
objectImportStatistics.ArtifactTypeID = LoadFile.ArtifactTypeID;
objectImportStatistics.BatchSizes = _loadFileImporter.BatchSizeHistoryList.ToArray();
objectImportStatistics.Bound = LoadFile.QuoteDelimiter;
objectImportStatistics.Delimiter = LoadFile.RecordDelimiter;
objectImportStatistics.NestedValueDelimiter = LoadFile.HierarchicalValueDelimiter;
objectImportStatistics.DestinationFolderArtifactID = LoadFile.DetermineDestinationFolderID();
if (LoadFile.ArtifactTypeID != 10)
objectImportStatistics.DestinationFolderArtifactID = -1;
ArrayList arrayList = new ArrayList();
bool flag = false;
IEnumerator enumerator = default(IEnumerator);
try {
enumerator = LoadFile.FieldMap.GetEnumerator();
while (enumerator.MoveNext()) {
LoadFileFieldMap.LoadFileFieldMapItem loadFileFieldMapItem = (LoadFileFieldMap.LoadFileFieldMapItem)enumerator.Current;
if (loadFileFieldMapItem.DocumentField != null && loadFileFieldMapItem.NativeFileColumnIndex > -1) {
arrayList.Add(new int[2] {
loadFileFieldMapItem.NativeFileColumnIndex,
loadFileFieldMapItem.DocumentField.FieldID
});
if (loadFileFieldMapItem.DocumentField.FieldCategory == global::Relativity.DataExchange.Service.FieldCategory.FullText)
flag = true;
}
}
} finally {
if (enumerator is IDisposable)
(enumerator as IDisposable).Dispose();
}
objectImportStatistics.ExtractedTextPointsToFile = (LoadFile.FullTextColumnContainsFileLocation && flag);
if (LoadFile.CopyFilesToDocumentRepository)
objectImportStatistics.FilesCopiedToRepository = LoadFile.SelectedCasePath;
else
objectImportStatistics.FilesCopiedToRepository = string.Empty;
objectImportStatistics.FieldsMapped = (int[][])arrayList.ToArray(typeof(int[]));
if (LoadFile.LoadNativeFiles)
objectImportStatistics.FileFieldColumnName = LoadFile.NativeFilePathColumn;
else
objectImportStatistics.FileFieldColumnName = string.Empty;
if (LoadFile.CreateFolderStructure)
objectImportStatistics.FolderColumnName = LoadFile.FolderStructureContainedInColumn;
else
objectImportStatistics.FolderColumnName = "";
if (objectImportStatistics.FolderColumnName == null)
objectImportStatistics.FolderColumnName = string.Empty;
objectImportStatistics.LoadFileEncodingCodePageID = LoadFile.SourceFileEncoding.CodePage;
objectImportStatistics.LoadFileName = Path.GetFileName(LoadFile.FilePath);
objectImportStatistics.MultiValueDelimiter = LoadFile.MultiRecordDelimiter;
objectImportStatistics.NewlineProxy = LoadFile.NewlineDelimiter;
checked {
objectImportStatistics.NumberOfChoicesCreated = _loadFileImporter.CodesCreated + _loadFileImporter.SingleCodesCreated;
objectImportStatistics.NumberOfDocumentsCreated = _loadFileImporter.Statistics.DocumentsCreated;
objectImportStatistics.NumberOfDocumentsUpdated = _loadFileImporter.Statistics.DocumentsUpdated;
objectImportStatistics.NumberOfErrors = _errorCount;
objectImportStatistics.NumberOfFilesLoaded = _loadFileImporter.Statistics.FilesProcessed;
objectImportStatistics.NumberOfFoldersCreated = _loadFileImporter.FoldersCreated;
objectImportStatistics.NumberOfWarnings = _warningCount;
objectImportStatistics.OverlayIdentifierFieldArtifactID = LoadFile.IdentityFieldId;
if (LoadFile.ExtractedTextFileEncoding != null)
objectImportStatistics.ExtractedTextFileEncodingCodePageID = LoadFile.ExtractedTextFileEncoding.CodePage;
switch (Conversions.ToInteger(Enum.Parse(typeof(ImportOverwriteType), LoadFile.OverwriteDestination, true))) {
case 1:
objectImportStatistics.Overwrite = kCura.EDDS.WebAPI.AuditManagerBase.OverwriteType.Overlay;
break;
case 2:
objectImportStatistics.Overwrite = kCura.EDDS.WebAPI.AuditManagerBase.OverwriteType.Both;
break;
default:
objectImportStatistics.Overwrite = kCura.EDDS.WebAPI.AuditManagerBase.OverwriteType.Append;
break;
}
if (LoadFile.OverlayBehavior.HasValue) {
switch (LoadFile.OverlayBehavior.Value) {
case LoadFile.FieldOverlayBehavior.MergeAll:
objectImportStatistics.OverlayBehavior = kCura.EDDS.WebAPI.AuditManagerBase.OverlayBehavior.MergeAll;
break;
case LoadFile.FieldOverlayBehavior.ReplaceAll:
objectImportStatistics.OverlayBehavior = kCura.EDDS.WebAPI.AuditManagerBase.OverlayBehavior.ReplaceAll;
break;
default:
objectImportStatistics.OverlayBehavior = kCura.EDDS.WebAPI.AuditManagerBase.OverlayBehavior.UseRelativityDefaults;
break;
}
}
if (LoadFile.CopyFilesToDocumentRepository) {
switch (_loadFileImporter.UploadConnection) {
case TapiClient.Direct:
objectImportStatistics.RepositoryConnection = RepositoryConnectionType.Direct;
break;
case TapiClient.Web:
objectImportStatistics.RepositoryConnection = RepositoryConnectionType.Web;
break;
}
objectImportStatistics.TotalFileSize = _loadFileImporter.Statistics.FileTransferredBytes;
}
objectImportStatistics.RunTimeInMilliseconds = (int)Math.Round(DateTime.Now.Subtract(base.StartTime).TotalMilliseconds);
objectImportStatistics.StartLine = (int)Math.Min(LoadFile.StartLineNumber, 2147483647);
objectImportStatistics.TotalMetadataBytes = _loadFileImporter.Statistics.MetadataTransferredBytes;
objectImportStatistics.SendNotification = LoadFile.SendEmailOnLoadCompletion;
ManagerFactory.CreateAuditManager(LoadFile.Credentials, LoadFile.CookieContainer, base.GetCorrelationId).AuditObjectImport(LoadFile.CaseInfo.ArtifactID, runID, _hasFatalErrorOccured, objectImportStatistics);
}
} catch (Exception ex) {
ProjectData.SetProjectError(ex);
Exception ex2 = ex;
base.Logger.LogError(ex2, "An error has occurred during audit", new object[0]);
ProjectData.ClearProjectError();
}
}
private void _loadFileImporter_FieldMapped(string sourceField, string workspaceField)
{
base.Context.PublishFieldMapped(sourceField, workspaceField);
}
private unsafe void _loadFileImporter_StatusMessage(StatusEventArgs e)
{
lock (base.Context) {
IDictionary metadata = null;
if (e.AdditionalInfo != null)
metadata = (IDictionary)e.AdditionalInfo;
checked {
long currentRecordIndex;
switch (e.EventType) {
case EventType2.End: {
base.Context.PublishProgress(e.TotalRecords, e.CurrentRecordIndex, _warningCount, _errorCount, base.StartTime, DateTime.Now, e.Statistics.MetadataTransferThroughput, e.Statistics.FileTransferThroughput, base.ProcessId, null, null, metadata);
ProcessContext context6 = base.Context;
currentRecordIndex = e.CurrentRecordIndex;
context6.PublishStatusEvent(currentRecordIndex.ToString(), e.Message);
base.Context.PublishProcessEnded(e.Statistics.FileTransferredBytes, e.Statistics.MetadataTransferredBytes, e.Statistics.GetSqlProcessRate());
break;
}
case EventType2.Error: {
ref int warningCount;
*(ref warningCount = ref _errorCount) = warningCount + 1;
*(ref warningCount = ref _perBatchErrorCount) = warningCount + 1;
base.Context.PublishProgress(e.TotalRecords, e.CurrentRecordIndex, _warningCount, _errorCount, base.StartTime, default(DateTime), e.Statistics.MetadataTransferThroughput, e.Statistics.FileTransferThroughput, base.ProcessId, null, null, metadata);
ProcessContext context5 = base.Context;
currentRecordIndex = e.CurrentRecordIndex;
context5.PublishErrorEvent(currentRecordIndex.ToString(), e.Message);
break;
}
case EventType2.Progress: {
base.Context.PublishRecordProcessed(e.CurrentRecordIndex);
base.Context.PublishProgress(e.TotalRecords, e.CurrentRecordIndex, _warningCount, _errorCount, base.StartTime, default(DateTime), e.Statistics.MetadataTransferThroughput, e.Statistics.FileTransferThroughput, base.ProcessId, null, null, metadata);
ProcessContext context4 = base.Context;
currentRecordIndex = e.CurrentRecordIndex;
context4.PublishStatusEvent(currentRecordIndex.ToString(), e.Message);
break;
}
case EventType2.Statistics:
SendMetricJobProgress(e.Statistics, true);
break;
case EventType2.ResetProgress: {
base.Context.PublishProgress(e.TotalRecords, e.CurrentRecordIndex, _warningCount, _errorCount, base.StartTime, default(DateTime), e.Statistics.MetadataTransferThroughput, e.Statistics.FileTransferThroughput, base.ProcessId, null, null, metadata);
ProcessContext context3 = base.Context;
currentRecordIndex = e.CurrentRecordIndex;
context3.PublishStatusEvent(currentRecordIndex.ToString(), e.Message);
break;
}
case EventType2.Status: {
ProcessContext context2 = base.Context;
currentRecordIndex = e.CurrentRecordIndex;
context2.PublishStatusEvent(currentRecordIndex.ToString(), e.Message);
break;
}
case EventType2.Warning: {
ref int warningCount;
*(ref warningCount = ref _warningCount) = warningCount + 1;
ProcessContext context = base.Context;
currentRecordIndex = e.CurrentRecordIndex;
context.PublishWarningEvent(currentRecordIndex.ToString(), e.Message);
break;
}
case EventType2.ResetStartTime:
SetStartTime();
break;
case EventType2.Count:
base.Context.PublishRecordCountIncremented();
break;
}
}
}
}
private void _loadFileImporter_FatalErrorEvent(string message, Exception ex, string runID)
{
if (!_hasFatalErrorOccured) {
lock (base.Context) {
base.Context.PublishFatalException(ex);
base.Context.PublishProcessCompleted(false, "", true);
_hasFatalErrorOccured = true;
}
}
}
private void _loadFileImporter_UploadModeChangeEvent(string statusBarText)
{
if (_uploadModeText == null)
_uploadModeText = TapiModeHelper.BuildDocText();
OnTapiClientChanged();
base.Context.PublishStatusBarChanged(statusBarText, _uploadModeText);
}
private void _loadFileImporter_DataSourcePrepEvent(DataSourcePrepEventArgs e)
{
lock (base.Context) {
string totalBytesDisplay = FileSizeHelper.ConvertBytesNumberToDisplayString(e.TotalBytes);
string processedBytesDisplay = FileSizeHelper.ConvertBytesNumberToDisplayString(e.BytesRead);
switch (e.Type) {
case DataSourcePrepEventArgs.EventType.Close:
base.Context.PublishProgressInBytes(e.TotalBytes, e.TotalBytes, e.StartTime, DateTime.Now, base.ProcessId, totalBytesDisplay, processedBytesDisplay);
break;
case DataSourcePrepEventArgs.EventType.Open:
base.Context.PublishProgressInBytes(e.TotalBytes, e.BytesRead, e.StartTime, DateTime.Now, base.ProcessId, totalBytesDisplay, processedBytesDisplay);
base.Context.PublishStatusEvent(string.Empty, "Preparing file for import");
break;
case DataSourcePrepEventArgs.EventType.ReadEvent:
base.Context.PublishProgressInBytes(e.TotalBytes, e.BytesRead, e.StartTime, DateTime.Now, base.ProcessId, totalBytesDisplay, processedBytesDisplay);
base.Context.PublishStatusEvent(string.Empty, "Preparing file for import");
break;
}
}
}
private void _loadFileImporter_ReportErrorEvent(IDictionary row)
{
base.Context.PublishErrorReport(row);
}
private void _loadFileImporter_IoErrorEvent(object sender, IoWarningEventArgs e)
{
lock (base.Context) {
base.Context.PublishWarningEvent(checked(e.CurrentLineNumber + 1).ToString(), e.Message);
}
}
private void _loadFileImporter_EndFileImport(string runID)
{
Statistics.DocumentsCount = _loadFileImporter.TotalTransferredFilesCount;
Statistics.DocsErrorsCount = _errorCount;
AuditRun(runID);
}
private void _loadFileImporter_OnBatchCompleted(BatchInformation batchInformation)
{
batchInformation.NumberOfRecordsWithErrors = _perBatchErrorCount;
_perBatchErrorCount = 0;
SendMetricJobBatch(batchInformation);
}
protected override void Dispose(bool disposing)
{
if (!isDisposed) {
_loadFileImporter?.Dispose();
isDisposed = true;
}
base.Dispose(disposing);
}
}
}