RelativityManagerWebApiService
using Polly;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Runtime.CompilerServices;
using System.Threading;
using System.Threading.Tasks;
namespace Relativity.Transfer.WebApi
{
[Obsolete("WebAPI support will be removed in upcoming releases. In order to communicate with Relativity use Kepler Services. For more information, see KeplerServiceBase class.")]
internal sealed class RelativityManagerWebApiService : WebApiService, IRelativityManagerService, IDisposable
{
private RelativityManager RelativityManagerInstance { get; set; }
public RelativityManagerWebApiService(RelativityConnectionInfo connectionInfo, ClientConfiguration configuration, IUserManagerService userManagerService, ITransferLog log)
: base(connectionInfo, configuration, userManagerService, log)
{
}
public Task<IEnumerable<InstanceSetting>> GetInstanceSettingsAsync(CancellationToken token)
{
Initialize();
return ((Policy)RetrySyntaxAsync.WaitAndRetryAsync(Policy.Handle<Exception>(), base.MaxRetryAttempts, (Func<int, TimeSpan>)((int retryAttempt) => TimeSpan.FromSeconds(Math.Pow(2, (double)retryAttempt))), (Action<Exception, TimeSpan>)delegate(Exception exception, TimeSpan span) {
base.Log.LogError(exception, $"""{span}", Array.Empty<object>());
CheckLogin(exception);
})).ExecuteAsync<IEnumerable<InstanceSetting>>((Func<CancellationToken, Task<IEnumerable<InstanceSetting>>>)delegate {
<<GetInstanceSettingsAsync>b__5_2>d stateMachine = default(<<GetInstanceSettingsAsync>b__5_2>d);
stateMachine.<>t__builder = AsyncTaskMethodBuilder<IEnumerable<InstanceSetting>>.Create();
stateMachine.<>4__this = this;
stateMachine.<>1__state = -1;
stateMachine.<>t__builder.Start(ref stateMachine);
return stateMachine.<>t__builder.Task;
}, token);
}
[AsyncStateMachine(typeof(<GetSingleInstanceSettingAsync>d__6))]
public Task<InstanceSetting> GetSingleInstanceSettingAsync(string section, string name, CancellationToken token)
{
<GetSingleInstanceSettingAsync>d__6 stateMachine = default(<GetSingleInstanceSettingAsync>d__6);
stateMachine.<>t__builder = AsyncTaskMethodBuilder<InstanceSetting>.Create();
stateMachine.<>4__this = this;
stateMachine.section = section;
stateMachine.name = name;
stateMachine.token = token;
stateMachine.<>1__state = -1;
stateMachine.<>t__builder.Start(ref stateMachine);
return stateMachine.<>t__builder.Task;
}
[AsyncStateMachine(typeof(<GetCloudInstanceAsync>d__7))]
public Task<bool> GetCloudInstanceAsync(CancellationToken token)
{
<GetCloudInstanceAsync>d__7 stateMachine = default(<GetCloudInstanceAsync>d__7);
stateMachine.<>t__builder = AsyncTaskMethodBuilder<bool>.Create();
stateMachine.<>4__this = this;
stateMachine.token = token;
stateMachine.<>1__state = -1;
stateMachine.<>t__builder.Start(ref stateMachine);
return stateMachine.<>t__builder.Task;
}
protected override void Dispose(bool disposing)
{
base.Dispose(disposing);
if (disposing && RelativityManagerInstance != null) {
((Component)RelativityManagerInstance).Dispose();
RelativityManagerInstance = null;
}
}
protected override void Initialize()
{
base.Initialize();
RelativityManager relativityManager = new RelativityManager();
relativityManager.set_Credentials(WebApiService.GetWebApiHttpCredential(base.ConnectionInfo).CreateCredentials());
relativityManager.set_CookieContainer(base.Configuration.CookieContainer);
relativityManager.set_Timeout((int)TimeSpan.FromSeconds(base.TimeoutSeconds).TotalMilliseconds);
relativityManager.set_Url(UrlHelper.Combine(WebApiService.GetWebApiServiceUrl(base.ConnectionInfo, base.Log), "RelativityManager.asmx").ToString());
RelativityManagerInstance = relativityManager;
}
}
}