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

CredentialServiceWithCache

using System; using System.Collections.Generic; using System.Runtime.CompilerServices; using System.Threading; using System.Threading.Tasks; namespace Relativity.Transfer { internal class CredentialServiceWithCache : ICredentialService { private readonly ICredentialService credentialService; private readonly ICacheProvider cacheProvider; private readonly SemaphoreSlim semaphore = new SemaphoreSlim(1, 1); public RelativityConnectionInfo ConnectionInfo => credentialService.ConnectionInfo; public int MaxRetryAttempts { get { return credentialService.MaxRetryAttempts; } set { credentialService.MaxRetryAttempts = value; } } public double TimeoutSeconds { get { return credentialService.TimeoutSeconds; } set { credentialService.TimeoutSeconds = value; } } public CredentialServiceWithCache(ICredentialService credentialService, ICacheProvider cacheProvider) { this.credentialService = credentialService; this.cacheProvider = cacheProvider; } public Task<IEnumerable<Credential>> GetCredentialsAsync(CancellationToken token) { return GetCredentialsAsync(null, token); } [AsyncStateMachine(typeof(<GetCredentialsAsync>d__13))] public Task<IEnumerable<Credential>> GetCredentialsAsync(string condition, CancellationToken token) { <GetCredentialsAsync>d__13 stateMachine = default(<GetCredentialsAsync>d__13); stateMachine.<>t__builder = AsyncTaskMethodBuilder<IEnumerable<Credential>>.Create(); stateMachine.<>4__this = this; stateMachine.condition = condition; stateMachine.token = token; stateMachine.<>1__state = -1; stateMachine.<>t__builder.Start(ref stateMachine); return stateMachine.<>t__builder.Task; } [AsyncStateMachine(typeof(<GetResourceServerAsperaCredentialAsync>d__14))] public Task<AsperaCredential> GetResourceServerAsperaCredentialAsync(int resourceServerArtifactId, CancellationToken token) { <GetResourceServerAsperaCredentialAsync>d__14 stateMachine = default(<GetResourceServerAsperaCredentialAsync>d__14); stateMachine.<>t__builder = AsyncTaskMethodBuilder<AsperaCredential>.Create(); stateMachine.<>4__this = this; stateMachine.resourceServerArtifactId = resourceServerArtifactId; stateMachine.token = token; stateMachine.<>1__state = -1; stateMachine.<>t__builder.Start(ref stateMachine); return stateMachine.<>t__builder.Task; } [AsyncStateMachine(typeof(<SynchronizeAsync>d__15<>))] private Task<T> SynchronizeAsync<T>(Func<Task<T>> func) { <SynchronizeAsync>d__15<T> stateMachine = default(<SynchronizeAsync>d__15<T>); stateMachine.<>t__builder = AsyncTaskMethodBuilder<T>.Create(); stateMachine.<>4__this = this; stateMachine.func = func; stateMachine.<>1__state = -1; stateMachine.<>t__builder.Start(ref stateMachine); return stateMachine.<>t__builder.Task; } } }