TransferPathCsvHeader
using Relativity.Transfer.Resources;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
namespace Relativity.Transfer
{
public class TransferPathCsvHeader
{
public const string HeaderSourcePath = "source-path";
public const int HeaderSourcePathDefaultIndex = 0;
public const string HeaderSourcePathId = "source-path-id";
public const int HeaderSourcePathIdDefaultIndex = 1;
public const string HeaderTargetFileName = "target-filename";
public const int HeaderTargetPathDefaultIndex = 2;
public const string HeaderTargetPath = "target-path";
public const int HeaderTargetFileNameDefaultIndex = 3;
public const string HeaderTotalBytes = "total-bytes";
public const int HeaderTotalBytesDefaultIndex = 4;
public const string HeaderTag = "tag";
public const int HeaderTagDefaultIndex = 5;
public bool ParsedHeaders { get; set; }
public int SourcePathFieldIndex { get; set; }
public int SourcePathIdFieldIndex { get; set; }
public int TagFieldIndex { get; set; }
public int TargetPathFieldIndex { get; set; }
public int TargetFileNameFieldIndex { get; set; }
public int TotalBytesFieldIndex { get; set; }
public TransferPathCsvHeader()
{
Clear();
}
public void Clear()
{
ParsedHeaders = false;
SourcePathFieldIndex = 0;
SourcePathIdFieldIndex = 1;
TargetPathFieldIndex = 2;
TargetFileNameFieldIndex = 3;
TotalBytesFieldIndex = 4;
TagFieldIndex = 5;
}
public bool ParseHeaders(string file, IEnumerable<string> line)
{
bool flag = false;
List<string> list = line.ToList();
if (list.Contains("total-bytes")) {
TotalBytesFieldIndex = list.IndexOf("total-bytes");
flag = true;
}
if (list.Contains("source-path")) {
SourcePathFieldIndex = list.IndexOf("source-path");
flag = true;
}
if (list.Contains("source-path-id")) {
SourcePathIdFieldIndex = list.IndexOf("source-path-id");
flag = true;
}
if (list.Contains("target-filename")) {
TargetFileNameFieldIndex = list.IndexOf("target-filename");
flag = true;
}
if (list.Contains("target-path")) {
TargetPathFieldIndex = list.IndexOf("target-path");
flag = true;
}
if (list.Contains("tag")) {
TagFieldIndex = list.IndexOf("tag");
flag = true;
}
if (flag && !list.Contains("source-path"))
throw new InvalidOperationException(string.Format(CultureInfo.CurrentCulture, CoreStrings.CsvRequiredHeaderMissingExceptionMessage, file, "source-path"));
return flag;
}
}
}