AsperaConfBuilder
class AsperaConfBuilder
using System;
using System.Diagnostics;
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>");
StringBuilder stringBuilder2 = stringBuilder;
int num = configuration.MetaThreadCount;
stringBuilder2.Replace("<@MetaThreadCount>", num.ToString());
StringBuilder stringBuilder3 = stringBuilder;
num = configuration.WriteThreadCount;
stringBuilder3.Replace("<@WriteThreadCount>", num.ToString());
StringBuilder stringBuilder4 = stringBuilder;
num = configuration.ScanThreadCount;
stringBuilder4.Replace("<@ScanThreadCount>", num.ToString());
StringBuilder stringBuilder5 = stringBuilder;
num = configuration.ReadThreadCount;
stringBuilder5.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 arg) {
Debug.WriteLine("Failed to over-write the existing Aspera configuration file. Error: " + arg);
}
}
}
}