<PackageReference Include="Relativity.Server.Transfer.SDK" Version="24000.0.1" />

InstanceSettingsConfigurationKeplerRetriever

using Polly; using Relativity.Transfer.Dto; using Relativity.Transfer.Resources; using System; using System.Globalization; using System.Net; using System.Runtime.CompilerServices; using System.Threading; using System.Threading.Tasks; namespace Relativity.Transfer.InstanceSettings.Configuration { internal class InstanceSettingsConfigurationKeplerRetriever : IInstanceSettingsConfigurationRetriever { private const string _ENDPOINT = "/Relativity.Rest/api/webapi-replacement/v1/tapi/RetrieveConfigurationAsync"; private readonly ITransferLog transferLog; private readonly RelativityConnectionInfo connectionInfo; private readonly IRestClient restClient; public InstanceSettingsConfigurationKeplerRetriever(ITransferLog transferLog, RelativityConnectionInfo connectionInfo, IRestClient restClient) { this.transferLog = transferLog; this.connectionInfo = connectionInfo; this.restClient = restClient; } [AsyncStateMachine(typeof(<GetConfigurationAsync>d__5))] public Task<InstanceSettingsConfiguration> GetConfigurationAsync(CancellationToken token) { <GetConfigurationAsync>d__5 stateMachine = default(<GetConfigurationAsync>d__5); stateMachine.<>t__builder = AsyncTaskMethodBuilder<InstanceSettingsConfiguration>.Create(); stateMachine.<>4__this = this; stateMachine.token = token; stateMachine.<>1__state = -1; stateMachine.<>t__builder.Start(ref stateMachine); return stateMachine.<>t__builder.Task; } [AsyncStateMachine(typeof(<ExecuteRequestAsync>d__6))] private Task<InstanceSettingsConfigurationDto> ExecuteRequestAsync(CancellationToken token) { <ExecuteRequestAsync>d__6 stateMachine = default(<ExecuteRequestAsync>d__6); stateMachine.<>t__builder = AsyncTaskMethodBuilder<InstanceSettingsConfigurationDto>.Create(); stateMachine.<>4__this = this; stateMachine.token = token; stateMachine.<>1__state = -1; stateMachine.<>t__builder.Start(ref stateMachine); return stateMachine.<>t__builder.Task; } private static TimeSpan GetSleepDurationProvider(int retryAttempt) { return TimeSpan.FromSeconds(Math.Pow(2, (double)retryAttempt)); } private static string OnEndpointErrorTitle(HttpStatusCode statusCode) { return "query TAPI instance settings configuration"; } private string OnEndpointErrorMessage(HttpStatusCode statusCode) { return string.Format(CultureInfo.CurrentCulture, CoreStrings.InstanceSettingHttpPostExceptionMessage, connectionInfo.Host, statusCode); } private void OnRetry(Exception exception, TimeSpan timeSpan, Context context) { transferLog.LogError(exception, "Retry - {Timespan} - Failed to retrieve a single instance setting.", timeSpan); } private static InstanceSettingsConfiguration CreateConfiguration(InstanceSettingsConfigurationDto result) { return new InstanceSettingsConfiguration { IsCloudInstance = result.IsCloudInstance, MaxAllowedTargetDataRateMbpsAsync = result.TapiMaxAllowedTargetDataRateMbps }; } } }