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

AsperaConfBuilder

using System; using System.Text; namespace Relativity.Transfer.Aspera { internal class AsperaConfBuilder { private readonly AsperaRuntimePaths paths; public AsperaConfBuilder(AsperaRuntimePaths paths) { if (paths == null) throw new ArgumentNullException("paths"); this.paths = paths; } public void Build(AsperaClientConfiguration configuration) { if (configuration == null) throw new ArgumentNullException("configuration"); IFileSystemService service = ServiceObjectLocator.GetService<IFileSystemService>(); paths.AsperaConfigFile = service.Combine(paths.EtcDirectory, "aspera.conf"); StringBuilder stringBuilder = new StringBuilder("\r\n<?xml version='1.0' encoding='UTF-8'?>\r\n<CONF version=\"2\">\r\n <default>\r\n <file_system>\r\n <meta_threads><@MetaThreadCount></meta_threads>\r\n <write_threads><@WriteThreadCount></write_threads>\r\n <scan_threads><@ScanThreadCount></scan_threads>\r\n <read_threads><@ReadThreadCount></read_threads>\r\n <resume_suffix><@ResumeSuffix></resume_suffix>\r\n </file_system>\r\n </default>\r\n</CONF>"); int num = configuration.MetaThreadCount; stringBuilder.Replace("<@MetaThreadCount>", num.ToString()); num = configuration.WriteThreadCount; stringBuilder.Replace("<@WriteThreadCount>", num.ToString()); num = configuration.ScanThreadCount; stringBuilder.Replace("<@ScanThreadCount>", num.ToString()); num = configuration.ReadThreadCount; stringBuilder.Replace("<@ReadThreadCount>", num.ToString()); stringBuilder.Replace("<@ResumeSuffix>", configuration.ResumeSuffix); paths.Create(); string text = stringBuilder.ToString().Trim(); if (service.FileExists(paths.AsperaConfigFile)) { string text2 = service.ReadAllText(paths.AsperaConfigFile); if (!string.IsNullOrEmpty(text2)) text2 = text2.Trim(); if (string.Compare(text2, text, StringComparison.OrdinalIgnoreCase) == 0) return; } try { service.WriteAllText(paths.AsperaConfigFile, text); } catch (Exception) { } } } }