FileShareConnectionService
using Relativity.Transfer.FileShare.Resources;
using Relativity.Transfer.Resources;
using System;
using System.Globalization;
using System.Runtime.CompilerServices;
using System.Threading;
using System.Threading.Tasks;
namespace Relativity.Transfer.FileShare
{
public class FileShareConnectionService : ConnectionServiceBase
{
private readonly FileShareClientConfiguration ;
private readonly string = "ConnectionTest_" + Guid.NewGuid().ToString() + "\\";
private string ;
public override string => "Direct";
public override Guid => new Guid("0315D6C7-FF07-41E2-9C25-16573FC6B9DE");
public FileShareConnectionService(RelativityConnectionInfo connectionInfo, ClientConfiguration configuration, IFileSystemService fileSystemService, ITransferLog log, DiagnosticsContext context)
: base(connectionInfo, configuration, fileSystemService, log, context)
{
clientConfiguration = ((configuration as FileShareClientConfiguration) ?? new FileShareClientConfiguration(configuration));
}
[AsyncStateMachine(typeof(<RunPreTestsAsync>d__8))]
protected override Task (CancellationToken token)
{
<RunPreTestsAsync>d__8 stateMachine = default(<RunPreTestsAsync>d__8);
stateMachine.<>t__builder = AsyncTaskMethodBuilder.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 Task (CancellationToken token)
{
WriteStatusMessage(string.Format(CultureInfo.CurrentCulture, FileShareStrings.ConnectionCheckCheckingRepositoryAccessMessage, fileShareUncPath), Array.Empty<object>());
if (!string.IsNullOrEmpty(clientConfiguration.FileShareUncPath))
try {
if (!base.FileSystemService.DirectoryExists(fileShareUncPath)) {
base.Log.LogError(FileShareStrings.FileShareDriveNotFoundExceptionMessage, fileShareUncPath, LogRedaction.OnPositions(default(int)));
throw new TransferException("The drive or share at is not available - check logs for more details.");
}
string text = base.FileSystemService.Combine(fileShareUncPath, testFolder);
base.FileSystemService.CreateDirectory(text);
WriteStatusMessage(string.Format(CultureInfo.CurrentCulture, FileShareStrings.ConnectionCheckCreatedTempDirectoryMessage, text), Array.Empty<object>());
string fileName = base.FileSystemService.GetFileName(base.TempFile);
string tempFile = base.TempFile;
string text2 = base.FileSystemService.Combine(text, fileName);
base.FileSystemService.MoveFile(tempFile, text2);
if (!base.FileSystemService.FileExists(text2))
throw new TransferException(FileShareStrings.ConnectionCheckUploadedFileNotFoundMessage);
WriteStatusMessage(string.Format(CultureInfo.CurrentCulture, FileShareStrings.ConnectionCheckCreatedTempFileMessage, text2), Array.Empty<object>());
return Task.FromResult(true);
} catch (Exception) {
string message = string.Format(CultureInfo.InvariantCulture, CoreStrings.ConnectionCheckUploadFailedMessage, ClientDisplayName);
WriteStatusMessage(message, Array.Empty<object>());
throw;
}
throw new TransferException(FileShareStrings.PathIsNullOrEmptyExceptionMessage);
}
protected override Task (CancellationToken token)
{
try {
string fileName = base.FileSystemService.GetFileName(base.TempFile);
string file = base.FileSystemService.Combine(base.FileSystemService.Combine(fileShareUncPath, testFolder), fileName);
if (!base.FileSystemService.FileExists(file))
throw new TransferException(FileShareStrings.ConnectionCheckUploadedFileNotFoundMessage);
string sourceFile = base.FileSystemService.Combine(base.FileSystemService.Combine(fileShareUncPath, testFolder), fileName);
string text = base.FileSystemService.Combine(GetTempDirectory().Directory, fileName);
base.FileSystemService.CopyFile(sourceFile, text, true);
if (!base.FileSystemService.FileExists(text))
throw new TransferException(FileShareStrings.ConnectionCheckDownloadedFileNotFoundMessage);
WriteStatusMessage(FileShareStrings.ConnectionCheckDownloadedFileMessage, Array.Empty<object>());
string text2 = base.FileSystemService.Combine(fileShareUncPath, testFolder);
base.FileSystemService.DeleteDirectory(text2, true);
WriteStatusMessage(string.Format(CultureInfo.CurrentCulture, FileShareStrings.ConnectionCheckDeletedTempDirectoryMessage, text2), Array.Empty<object>());
return Task.FromResult(true);
} catch (Exception) {
string message = string.Format(CultureInfo.CurrentCulture, CoreStrings.ConnectionCheckDownloadFailedMessage, ClientDisplayName);
WriteStatusMessage(message, Array.Empty<object>());
throw;
}
}
[AsyncStateMachine(typeof(<AutoConfigureAsync>d__11))]
private Task (CancellationToken token)
{
<AutoConfigureAsync>d__11 stateMachine = default(<AutoConfigureAsync>d__11);
stateMachine.<>t__builder = AsyncTaskMethodBuilder.Create();
stateMachine.<>4__this = this;
stateMachine.token = token;
stateMachine.<>1__state = -1;
stateMachine.<>t__builder.Start(ref stateMachine);
return stateMachine.<>t__builder.Task;
}
}
}