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

Statistics

public class Statistics
using Microsoft.VisualBasic; using Microsoft.VisualBasic.CompilerServices; using Relativity.DataExchange; using System; using System.Collections; using System.Collections.Generic; using System.Collections.Specialized; using System.Runtime.CompilerServices; namespace kCura.WinEDDS { public class Statistics { public const string BatchSizeKey = "BatchSize"; public const string BatchCountKey = "Batches"; public const string DocsCountKey = "Docs"; public const string MetadataBytesKey = "MetadataBytes"; public const string MetadataFilesTransferredKey = "MetadataFilesTransferred"; public const string MetadataThroughputKey = "MetadataThroughput"; public const string MetadataTimeKey = "MetadataTime"; public const string NativeFileBytesKey = "NativeFileBytes"; public const string NativeFileThroughputKey = "NativeFileThroughput"; public const string NativeFileTimeKey = "NativeFileTime"; public const string NativeFilesTransferredKey = "NativeFilesTransferred"; public const string DocsErrorsCountKey = "DocsErrorsCount"; public const string FileTransferRateKey = "Average file transfer rate"; public const string MetadataTransferRateKey = "Average metadata transfer rate"; public const string SqlProcessRateKey = "Average SQL process rate"; public const string CurrentBatchSizeKey = "Current batch size"; [CompilerGenerated] private int _BatchCount; [CompilerGenerated] private int _BatchSize; [CompilerGenerated] private int _DocsErrorsCount; [CompilerGenerated] private int _MetadataFilesTransferredCount; [CompilerGenerated] private long _MetadataTransferredBytes; [CompilerGenerated] private TimeSpan _MetadataTransferDuration; [CompilerGenerated] private TimeSpan _MetadataWaitDuration; [CompilerGenerated] private double _MetadataTransferThroughput; [CompilerGenerated] private int _NativeFilesTransferredCount; [CompilerGenerated] private long _FileTransferredBytes; [CompilerGenerated] private TimeSpan _FileTransferDuration; [CompilerGenerated] private TimeSpan _FileWaitDuration; [CompilerGenerated] private double _FileTransferThroughput; [CompilerGenerated] private TimeSpan _MassImportDuration; [CompilerGenerated] private int _DocumentsCount; public int BatchCount { get; set; } public int BatchSize { get; set; } public int DocsErrorsCount { get; set; } public int MetadataFilesTransferredCount { get; set; } public long MetadataTransferredBytes { get; set; } public TimeSpan MetadataTransferDuration { get; set; } public TimeSpan MetadataWaitDuration { get; set; } public double MetadataTransferThroughput { get; set; } public int NativeFilesTransferredCount { get; set; } public long FileTransferredBytes { get; set; } public TimeSpan FileTransferDuration { get; set; } public TimeSpan FileWaitDuration { get; set; } public double FileTransferThroughput { get; set; } public TimeSpan MassImportDuration { get; set; } public int DocumentsCount { get; set; } public Statistics() { BatchCount = 0; BatchSize = 0; DocsErrorsCount = 0; MetadataFilesTransferredCount = 0; MetadataTransferredBytes = 0; MetadataTransferDuration = default(TimeSpan); MetadataWaitDuration = default(TimeSpan); MetadataTransferThroughput = 0; NativeFilesTransferredCount = 0; FileTransferredBytes = 0; FileTransferDuration = default(TimeSpan); FileWaitDuration = default(TimeSpan); FileTransferThroughput = 0; MassImportDuration = default(TimeSpan); DocumentsCount = 0; } public static double CalculateThroughput(long size, double timeSeconds) { return Conversions.ToDouble(Interaction.IIf(timeSeconds.Equals(0), 0, (double)size / timeSeconds)); } internal static string ToFileSizeSpecification(double value) { return ByteSize.FromBytes(value).ToString("0.##"); } public virtual double GetSqlProcessRate() { return 0; } public virtual IDictionary ToDictionaryForProgress() { HybridDictionary hybridDictionary = new HybridDictionary(); TimeSpan timeSpan = FileTransferDuration; if (!timeSpan.Equals(TimeSpan.Zero)) { TimeSpan t = FileTransferDuration - FileWaitDuration; if (t <= TimeSpan.Zero) t = FileTransferDuration; hybridDictionary.Add("Average file transfer rate", ToFileSizeSpecification((double)FileTransferredBytes / t.TotalSeconds) + "/sec"); } timeSpan = MetadataTransferDuration; if (!timeSpan.Equals(TimeSpan.Zero)) { TimeSpan t2 = MetadataTransferDuration - MetadataWaitDuration; if (t2 <= TimeSpan.Zero) t2 = MetadataTransferDuration; hybridDictionary.Add("Average metadata transfer rate", ToFileSizeSpecification((double)MetadataTransferredBytes / t2.TotalSeconds) + "/sec"); } timeSpan = MassImportDuration; if (!timeSpan.Equals(TimeSpan.Zero)) { HybridDictionary hybridDictionary2 = hybridDictionary; double num = (double)DocumentsCount; timeSpan = MassImportDuration; hybridDictionary2.Add("Average SQL process rate", (num / timeSpan.TotalSeconds).ToString("N0") + " Documents/sec"); } if (BatchSize != 0) hybridDictionary.Add("Current batch size", BatchSize.ToString("N0")); return hybridDictionary; } public virtual IDictionary<string, object> ToDictionaryForLogs() { return new Dictionary<string, object> { { "DocsErrorsCount", DocsErrorsCount }, { "BatchSize", BatchSize }, { "Batches", BatchCount }, { "Docs", DocumentsCount }, { "MetadataBytes", MetadataTransferredBytes }, { "MetadataFilesTransferred", MetadataFilesTransferredCount }, { "MetadataThroughput", MetadataTransferThroughput }, { "MetadataTime", MetadataTransferDuration }, { "NativeFileBytes", FileTransferredBytes }, { "NativeFileThroughput", FileTransferThroughput }, { "NativeFileTime", FileTransferDuration }, { "NativeFilesTransferred", NativeFilesTransferredCount } }; } } }