ResourceServerService
using Relativity.Transfer.Dto;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Threading;
using System.Threading.Tasks;
namespace Relativity.Transfer
{
internal class ResourceServerService : RestServiceBase, IResourceServerService
{
private readonly RelativityConnectionInfo connectionInfo;
private readonly ITransferLog transferLog;
public ResourceServerService(RelativityConnectionInfo connectionInfo, ClientConfiguration configuration, ITransferLog log)
: base(connectionInfo, configuration, log)
{
if (connectionInfo == null)
throw new ArgumentNullException("connectionInfo");
if (log == null)
throw new ArgumentNullException("log");
this.connectionInfo = connectionInfo;
transferLog = log;
}
public Task<IEnumerable<FileShareResourceServer>> (CancellationToken token)
{
return GetFileShareResourceServersAsync((string)null, token);
}
public Task<IEnumerable<FileShareResourceServer>> (IEnumerable<ResourceServer> resourceServers, CancellationToken token)
{
if (resourceServers == null)
throw new ArgumentNullException("resourceServers");
List<int> list = (from x in resourceServers
select x.ArtifactId).ToList();
if (list.Count == 0)
return Task.FromResult(Enumerable.Empty<FileShareResourceServer>());
string condition = "('ArtifactID' IN [" + string.Join(",", list) + "])";
return GetFileShareResourceServersAsync(condition, token);
}
[AsyncStateMachine(typeof(<GetFileShareResourceServersAsync>d__5))]
public Task<IEnumerable<FileShareResourceServer>> (string condition, CancellationToken token)
{
<GetFileShareResourceServersAsync>d__5 stateMachine = default(<GetFileShareResourceServersAsync>d__5);
stateMachine.<>t__builder = AsyncTaskMethodBuilder<IEnumerable<FileShareResourceServer>>.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;
}
public Task<IEnumerable<ResourceServer>> GetResourceServersAsync(CancellationToken token)
{
return GetResourceServersAsync(null, token);
}
[AsyncStateMachine(typeof(<GetResourceServersAsync>d__7))]
public Task<IEnumerable<ResourceServer>> GetResourceServersAsync(string condition, CancellationToken token)
{
<GetResourceServersAsync>d__7 stateMachine = default(<GetResourceServersAsync>d__7);
stateMachine.<>t__builder = AsyncTaskMethodBuilder<IEnumerable<ResourceServer>>.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(<GetSqlResourceServersAsync>d__8))]
public Task<IEnumerable<SqlResourceServer>> GetSqlResourceServersAsync(string condition, CancellationToken token)
{
<GetSqlResourceServersAsync>d__8 stateMachine = default(<GetSqlResourceServersAsync>d__8);
stateMachine.<>t__builder = AsyncTaskMethodBuilder<IEnumerable<SqlResourceServer>>.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;
}
internal static FileShareResourceServer (FileShareResourceServerDto dto, bool cloudInstance)
{
return new FileShareResourceServer {
ArtifactId = dto.ArtifactId,
CloudInstance = cloudInstance,
Name = dto.Name,
ResourceServerType = new ResourceServerType {
ArtifactId = (dto.ServerType?.ArtifactId ?? 0),
Name = dto.ServerType?.Name
},
UncPath = dto.UncPath
};
}
private static ResourceServer CreateResourceServer(ResourceServerDto dto, bool cloudInstance)
{
return new ResourceServer {
ArtifactId = dto.ArtifactId,
CloudInstance = cloudInstance,
Name = dto.Name,
ResourceServerType = new ResourceServerType {
ArtifactId = (dto.ServerType?.ArtifactId ?? 0),
Name = dto.ServerType?.Name
}
};
}
}
}