Config
using kCura.EDDS.WebAPI.BulkImportManagerBase;
using Microsoft.VisualBasic.CompilerServices;
using Relativity.DataExchange;
using Relativity.DataExchange.Io;
using Relativity.DataExchange.Transfer;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using System.Threading;
namespace kCura.WinEDDS
{
public class Config
{
private const string mainFormWindowHeightKey = "MainFormWindowHeight";
private const string mainFormWindowWidthKey = "MainFormWindowWidth";
private static readonly object _loadLock = RuntimeHelpers.GetObjectValue(new object());
private static AppSettingsDictionary _appSettingsDictionary;
public static IDictionary ConfigSettings {
get {
if (_appSettingsDictionary == null) {
object loadLock = _loadLock;
ObjectFlowControl.CheckForSyncLockOnValueType(loadLock);
bool lockTaken = false;
try {
Monitor.Enter(loadLock, ref lockTaken);
if (_appSettingsDictionary == null)
_appSettingsDictionary = new AppSettingsDictionary(AppSettings.Instance);
} finally {
if (lockTaken)
Monitor.Exit(loadLock);
}
}
return _appSettingsDictionary;
}
}
public static int MaxReloginTries => AppSettings.Instance.MaxReloginTries;
public static int WaitBeforeReconnect => AppSettings.Instance.WaitBeforeReconnect;
public static string FileTransferModeExplanationText => TapiModeHelper.BuildDocText();
public static string ApplicationName => AppSettings.Instance.ApplicationName;
internal static bool UsePipeliningForNativeAndObjectImports => AppSettings.Instance.UsePipeliningForNativeAndObjectImports;
internal static bool LoadImportedFullTextFromServer => AppSettings.Instance.LoadImportedFullTextFromServer;
internal static bool DisableTextFileEncodingCheck => AppSettings.Instance.DisableTextFileEncodingCheck;
public static long ProcessFormRefreshRate => AppSettings.Instance.ProcessFormRefreshRate;
public static int ImportBatchMaxVolume => AppSettings.Instance.ImportBatchMaxVolume;
public static int ImportBatchSize => AppSettings.Instance.ImportBatchSize;
public static bool UseSynchronizedImportBatchMode => AppSettings.Instance.UseSynchronizedImportBatchMode;
public static int JobCompleteBatchSize => AppSettings.Instance.JobCompleteBatchSize;
public static int HttpTimeoutSeconds => AppSettings.Instance.HttpTimeoutSeconds;
public static int WebAPIOperationTimeout => AppSettings.Instance.WebApiOperationTimeout;
public static bool PermissionErrorsRetry => AppSettings.Instance.PermissionErrorsRetry;
public static bool ExportPermissionErrorsRetry => AppSettings.Instance.ExportPermissionErrorsRetry;
public static bool BadPathErrorsRetry => AppSettings.Instance.TapiBadPathErrorsRetry;
public static string TempDirectory => AppSettings.Instance.TempDirectory;
public static bool CreateFoldersInWebAPI => AppSettings.Instance.CreateFoldersInWebApi;
public static bool DynamicBatchResizingOn => AppSettings.Instance.DynamicBatchResizingOn;
public static int DefaultMaximumErrorCount => AppSettings.Instance.DefaultMaxErrorCount;
public static int MinimumBatchSize => AppSettings.Instance.MinBatchSize;
public static int ExportBatchSize => AppSettings.Instance.ExportBatchSize;
public static bool DisableImageTypeValidation => AppSettings.Instance.DisableImageTypeValidation;
public static bool DisableImageLocationValidation => AppSettings.Instance.DisableImageLocationValidation;
public static bool DisableNativeValidation => AppSettings.Instance.DisableOutsideInFileIdentification;
public static bool DisableNativeLocationValidation => AppSettings.Instance.DisableThrowOnIllegalCharacters;
public static bool CreateErrorForEmptyNativeFile => AppSettings.Instance.CreateErrorForEmptyNativeFile;
public static ImportAuditLevel AuditLevel => (ImportAuditLevel)Enum.Parse(typeof(ImportAuditLevel), AppSettings.Instance.AuditLevel);
public static bool ForceWebUpload => AppSettings.Instance.ForceWebUpload;
public static bool => AppSettings.Instance.TapiForceFileShareClient;
public static bool TapiForceHttpClient => AppSettings.Instance.TapiForceHttpClient;
public static bool TapiForceBcpHttpClient => AppSettings.Instance.TapiForceBcpHttpClient;
public static string TapiAsperaBcpRootFolder => AppSettings.Instance.TapiAsperaBcpRootFolder;
public static bool TapiForceAsperaClient => AppSettings.Instance.TapiForceAsperaClient;
public static string TapiForceClientCandidates => AppSettings.Instance.TapiForceClientCandidates;
public static int TapiMinDataRateMbps => AppSettings.Instance.TapiMinDataRateMbps;
public static bool TapiSubmitApmMetrics => AppSettings.Instance.TapiSubmitApmMetrics;
public static int TapiTargetDataRateMbps => AppSettings.Instance.TapiTargetDataRateMbps;
public static bool TapiPreserveFileTimestamps => AppSettings.Instance.TapiPreserveFileTimestamps;
public static string TapiTransferLogDirectory => AppSettings.Instance.TapiTransferLogDirectory;
public static bool TapiLargeFileProgressEnabled => AppSettings.Instance.TapiLargeFileProgressEnabled;
public static int TapiMaxJobParallelism => AppSettings.Instance.TapiMaxJobParallelism;
public static int TapiAsperaNativeDocRootLevels => AppSettings.Instance.TapiAsperaNativeDocRootLevels;
public static bool SuppressCertificateCheckOnClient => AppSettings.Instance.SuppressServerCertificateValidation;
public static string LogConfigFile => AppSettings.Instance.LogConfigXmlFileName;
public static bool ForceFolderPreview {
get {
return AppSettings.Instance.ForceFolderPreview;
}
set {
AppSettings.Instance.ForceFolderPreview = value;
}
}
public static IList<int> ObjectFieldIdListContainsArtifactId {
get {
return AppSettings.Instance.ObjectFieldIdListContainsArtifactId;
}
set {
AppSettings.Instance.ObjectFieldIdListContainsArtifactId = value;
}
}
public static string WebServiceURL {
get {
return AppSettings.Instance.WebApiServiceUrl;
}
set {
AppSettings.Instance.WebApiServiceUrl = value;
}
}
public static int MainFormWindowWidth {
get {
string registryKeyValue = GetRegistryKeyValue("MainFormWindowWidth");
if (Operators.CompareString(registryKeyValue, null, false) == 0)
return 0;
return Convert.ToInt32(registryKeyValue);
}
set {
SetRegistryKeyValue("MainFormWindowWidth", value.ToString());
}
}
public static int MainFormWindowHeight {
get {
string registryKeyValue = GetRegistryKeyValue("MainFormWindowHeight");
if (Operators.CompareString(registryKeyValue, null, false) == 0)
return 0;
return Convert.ToInt32(registryKeyValue);
}
set {
SetRegistryKeyValue("MainFormWindowHeight", value.ToString());
}
}
public static string ProgrammaticServiceURL {
get {
return AppSettings.Instance.ProgrammaticWebApiServiceUrl;
}
set {
AppSettings.Instance.ProgrammaticWebApiServiceUrl = value;
}
}
public static bool EnableSingleModeImport => false;
public static int WebBasedFileDownloadChunkSize => AppSettings.Instance.WebBasedFileDownloadChunkSize;
public static bool EnableCaseSensitiveSearchOnImport => AppSettings.Instance.EnableCaseSensitiveSearchOnImport;
public static RetryOptions RetryOptions => AppSettings.Instance.RetryOptions;
public static bool UseSearchablePDF => AppSettings.Instance.UseSearchablePdf;
public static string GetRegistryKeyValue(string keyName)
{
return AppSettingsManager.GetRegistryKeyValue(keyName);
}
private static void SetRegistryKeyValue(string keyName, string keyVal)
{
AppSettingsManager.SetRegistryKeyValue(keyName, keyVal);
}
public static string ValidateURIFormat(string returnValue)
{
return AppSettings.Instance.ValidateUriFormat(returnValue);
}
}
}