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;
}
}
}