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

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 clientConfiguration; private readonly string testFolder = "ConnectionTest_" + Guid.NewGuid().ToString() + "\\"; private string fileShareUncPath; public override string ClientDisplayName => "Direct"; public override Guid ClientId => 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 RunPreTestsAsync(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 TestUploadAsync(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 TestDownloadAsync(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 AutoConfigureAsync(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; } } }