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

ManagerFactory

public class ManagerFactory
using kCura.WinEDDS.Mapping; using kCura.WinEDDS.Service.Kepler; using kCura.WinEDDS.Service.Replacement; using Microsoft.VisualBasic; using Microsoft.VisualBasic.CompilerServices; using Relativity.DataExchange; using Relativity.DataExchange.Logger; using Relativity.DataExchange.Service; using Relativity.DataExchange.Service.WebApiVsKeplerSwitch; using Relativity.Logging; using System; using System.Net; using System.Runtime.CompilerServices; using System.Threading; namespace kCura.WinEDDS.Service { public class ManagerFactory { [CompilerGenerated] internal sealed class _Closure$__7-0 { public Uri $VB$Local_urlAsUri; public _Closure$__7-1 $VB$NonLocal_$VB$Closure_2; internal IWebApiVsKepler _Lambda$__0() { return new WebApiVsKeplerFactory(RelativityLogger.Instance).Create($VB$Local_urlAsUri, $VB$NonLocal_$VB$Closure_2.$VB$Local_credentials, $VB$NonLocal_$VB$Closure_2.$VB$Local_correlationIdFunc); } } [CompilerGenerated] internal sealed class _Closure$__7-1 { public NetworkCredential $VB$Local_credentials; public Func<string> $VB$Local_correlationIdFunc; } private static readonly object Lock = RuntimeHelpers.GetObjectValue(new object()); internal static Lazy<IWebApiVsKepler> _webApiVsKeplerLazy; internal static string _currentUrl; internal static NetworkCredential _currentCredentials; internal static IServiceConnectionInfo _connectionInfo; internal static void Initialize(NetworkCredential credentials, Func<string> correlationIdFunc, string url = null) { _Closure$__7-1 closure$__7- = new _Closure$__7-1(); closure$__7-.$VB$Local_credentials = credentials; closure$__7-.$VB$Local_correlationIdFunc = correlationIdFunc; object lock = Lock; ObjectFlowControl.CheckForSyncLockOnValueType(lock); bool lockTaken = false; try { Monitor.Enter(lock, ref lockTaken); if (string.IsNullOrWhiteSpace(url)) url = AppSettings.Instance.WebApiServiceUrl; if (Operators.CompareString(url, _currentUrl, false) != 0 || !CredentialsAreEqual(closure$__7-.$VB$Local_credentials, _currentCredentials)) { _Closure$__7-0 closure$__7-2; closure$__7-2.$VB$NonLocal_$VB$Closure_2 = closure$__7-; closure$__7-2.$VB$Local_urlAsUri = new Uri(url); IServiceConnectionInfo connectionInfo = new KeplerServiceConnectionInfo(closure$__7-2.$VB$Local_urlAsUri, closure$__7-2.$VB$NonLocal_$VB$Closure_2.$VB$Local_credentials); Lazy<IWebApiVsKepler> webApiVsKeplerLazy = new Lazy<IWebApiVsKepler>(() => new WebApiVsKeplerFactory(RelativityLogger.Instance).Create(closure$__7-2.$VB$Local_urlAsUri, closure$__7-2.$VB$NonLocal_$VB$Closure_2.$VB$Local_credentials, closure$__7-2.$VB$NonLocal_$VB$Closure_2.$VB$Local_correlationIdFunc)); _connectionInfo = connectionInfo; _currentUrl = url; _currentCredentials = closure$__7-2.$VB$NonLocal_$VB$Closure_2.$VB$Local_credentials; _webApiVsKeplerLazy = webApiVsKeplerLazy; } } finally { if (lockTaken) Monitor.Exit(lock); } } internal static void InvalidateCache() { _connectionInfo = null; _currentUrl = null; _currentCredentials = null; _webApiVsKeplerLazy = null; } public static IApplicationVersionService CreateApplicationVersionService(RelativityInstanceInfo instance, IAppSettings appSettings, ILog logger, Func<string> correlationIdFunc) { Initialize((NetworkCredential)instance.Credentials, correlationIdFunc, null); if (!_webApiVsKeplerLazy.Value.UseKepler()) return new ApplicationVersionService(instance, appSettings, logger); return new KeplerApplicationVersionService(instance, appSettings, logger); } public static IAuditManager CreateAuditManager(NetworkCredential credentials, CookieContainer cookieContainer, Func<string> correlationIdFunc) { Initialize(credentials, correlationIdFunc, null); if (!_webApiVsKeplerLazy.Value.UseKepler()) return new AuditManager(credentials, cookieContainer); return new KeplerAuditManager(new KeplerServiceProxyFactory(_connectionInfo), new KeplerExceptionMapper(), correlationIdFunc); } public static IBulkImportManager CreateBulkImportManager(NetworkCredential credentials, CookieContainer cookieContainer, Func<string> correlationIdFunc) { Initialize(credentials, correlationIdFunc, null); if (!_webApiVsKeplerLazy.Value.UseKepler()) return new BulkImportManager(credentials, cookieContainer); return new KeplerBulkImportManager(new KeplerServiceProxyFactory(_connectionInfo), new KeplerExceptionMapper(), credentials, correlationIdFunc); } public static ICaseManager CreateCaseManager(NetworkCredential credentials, CookieContainer cookieContainer, Func<string> correlationIdFunc) { Initialize(credentials, correlationIdFunc, null); if (!_webApiVsKeplerLazy.Value.UseKepler()) return new CaseManager(credentials, cookieContainer); return new KeplerCaseManager(new KeplerServiceProxyFactory(_connectionInfo), new KeplerExceptionMapper(), correlationIdFunc); } public static ICodeManager CreateCodeManager(NetworkCredential credentials, CookieContainer cookieContainer, Func<string> correlationIdFunc) { Initialize(credentials, correlationIdFunc, null); if (!_webApiVsKeplerLazy.Value.UseKepler()) return new CodeManager(credentials, cookieContainer); return new KeplerCodeManager(new KeplerServiceProxyFactory(_connectionInfo), new KeplerExceptionMapper(), correlationIdFunc); } public static IDocumentManager CreateDocumentManager(NetworkCredential credentials, CookieContainer cookieContainer, Func<string> correlationIdFunc) { Initialize(credentials, correlationIdFunc, null); if (!_webApiVsKeplerLazy.Value.UseKepler()) return new DocumentManager(credentials, cookieContainer); return new KeplerDocumentManager(new KeplerServiceProxyFactory(_connectionInfo), new KeplerExceptionMapper(), correlationIdFunc); } public static IExportManager CreateExportManager(NetworkCredential credentials, CookieContainer cookieContainer, Func<string> correlationIdFunc) { Initialize(credentials, correlationIdFunc, null); if (!_webApiVsKeplerLazy.Value.UseKepler()) return new ExportManager(credentials, cookieContainer); return new KeplerExportManager(new KeplerServiceProxyFactory(_connectionInfo), new KeplerExceptionMapper(), correlationIdFunc); } public static IFieldManager CreateFieldManager(NetworkCredential credentials, CookieContainer cookieContainer, Func<string> correlationIdFunc) { Initialize(credentials, correlationIdFunc, null); if (!_webApiVsKeplerLazy.Value.UseKepler()) return new FieldManager(credentials, cookieContainer); return new KeplerFieldManager(new KeplerServiceProxyFactory(_connectionInfo), new KeplerExceptionMapper(), correlationIdFunc); } public static IFieldQuery CreateFieldQuery(NetworkCredential credentials, CookieContainer cookieContainer, Func<string> correlationIdFunc) { Initialize(credentials, correlationIdFunc, null); if (!_webApiVsKeplerLazy.Value.UseKepler()) return new FieldQuery(credentials, cookieContainer); return new KeplerFieldQuery(new KeplerServiceProxyFactory(_connectionInfo), new KeplerExceptionMapper(), correlationIdFunc); } public static IFileIO CreateFileIO(NetworkCredential credentials, CookieContainer cookieContainer, Func<string> correlationIdFunc) { Initialize(credentials, correlationIdFunc, null); if (!_webApiVsKeplerLazy.Value.UseKepler()) return new FileIO(credentials, cookieContainer); return new KeplerFileIO(new KeplerServiceProxyFactory(_connectionInfo), new KeplerExceptionMapper(), correlationIdFunc); } public static IFileIO CreateFileIO(NetworkCredential credentials, CookieContainer cookieContainer, int timeout, Func<string> correlationIdFunc) { Initialize(credentials, correlationIdFunc, null); if (!_webApiVsKeplerLazy.Value.UseKepler()) { FileIO fileIO = new FileIO(credentials, cookieContainer); fileIO.set_Timeout(timeout); return fileIO; } return new KeplerFileIO(new KeplerServiceProxyFactory(_connectionInfo), new KeplerExceptionMapper(), correlationIdFunc); } public static IFolderManager CreateFolderManager(NetworkCredential credentials, CookieContainer cookieContainer, Func<string> correlationIdFunc) { Initialize(credentials, correlationIdFunc, null); if (!_webApiVsKeplerLazy.Value.UseKepler()) return new FolderManager(credentials, cookieContainer); return new KeplerFolderManager(new KeplerServiceProxyFactory(_connectionInfo), new KeplerExceptionMapper(), correlationIdFunc); } public static IObjectManager CreateObjectManager(NetworkCredential credentials, CookieContainer cookieContainer, Func<string> correlationIdFunc) { Initialize(credentials, correlationIdFunc, null); if (!_webApiVsKeplerLazy.Value.UseKepler()) return new ObjectManager(credentials, cookieContainer); return new KeplerObjectManager(new KeplerServiceProxyFactory(_connectionInfo), new KeplerExceptionMapper(), correlationIdFunc); } public static IObjectTypeManager CreateObjectTypeManager(NetworkCredential credentials, CookieContainer cookieContainer, Func<string> correlationIdFunc) { Initialize(credentials, correlationIdFunc, null); if (!_webApiVsKeplerLazy.Value.UseKepler()) return new ObjectTypeManager(credentials, cookieContainer); return new KeplerObjectTypeManager(new KeplerServiceProxyFactory(_connectionInfo), new KeplerExceptionMapper(), correlationIdFunc); } public static IProductionManager CreateProductionManager(NetworkCredential credentials, CookieContainer cookieContainer, Func<string> correlationIdFunc) { Initialize(credentials, correlationIdFunc, null); if (!_webApiVsKeplerLazy.Value.UseKepler()) return new ProductionManager(credentials, cookieContainer); return new KeplerProductionManager(new KeplerServiceProxyFactory(_connectionInfo), new KeplerExceptionMapper(), correlationIdFunc); } public static IRelativityManager CreateRelativityManager(NetworkCredential credentials, CookieContainer cookieContainer, Func<string> correlationIdFunc, bool? useKepler = default(bool?)) { Initialize(credentials, correlationIdFunc, null); if (!(useKepler ?? _webApiVsKeplerLazy.Value.UseKepler())) return new RelativityManager(credentials, cookieContainer); return new KeplerRelativityManager(new KeplerServiceProxyFactory(_connectionInfo), new KeplerExceptionMapper(), correlationIdFunc); } public static ISearchManager CreateSearchManager(NetworkCredential credentials, CookieContainer cookieContainer, Func<string> correlationIdFunc) { Initialize(credentials, correlationIdFunc, null); if (!_webApiVsKeplerLazy.Value.UseKepler()) return new SearchManager(credentials, cookieContainer); return new KeplerSearchManager(new KeplerServiceProxyFactory(_connectionInfo), new KeplerExceptionMapper(), correlationIdFunc); } public static IUserManager CreateUserManager(NetworkCredential credentials, CookieContainer cookieContainer, Func<string> correlationIdFunc) { Initialize(credentials, correlationIdFunc, null); if (!_webApiVsKeplerLazy.Value.UseKepler()) return new UserManager(credentials, cookieContainer); return new KeplerUserManager(new KeplerServiceProxyFactory(_connectionInfo), new KeplerExceptionMapper(), correlationIdFunc); } public static IUserManager CreateUserManager(NetworkCredential credentials, CookieContainer cookieContainer, string webServiceUrl, Func<string> correlationIdFunc) { Initialize(credentials, correlationIdFunc, webServiceUrl); if (!_webApiVsKeplerLazy.Value.UseKepler()) return new UserManager(credentials, cookieContainer, webServiceUrl); return new KeplerUserManager(new KeplerServiceProxyFactory(_connectionInfo), new KeplerExceptionMapper(), correlationIdFunc); } private static bool CredentialsAreEqual(NetworkCredential cred1, NetworkCredential cred2) { if (!(Information.IsNothing(cred1) & Information.IsNothing(cred2))) { if (!(Information.IsNothing(cred1) | Information.IsNothing(cred2))) return (Operators.CompareString(cred1.Domain, cred2.Domain, false) == 0) & (Operators.CompareString(cred1.UserName, cred2.UserName, false) == 0) & (Operators.CompareString(cred1.Password, cred2.Password, false) == 0); return false; } return true; } } }