in sdk/SdkSamples/Agreements/ImportCustomersAgreement.cs [127:190]
private List<CustomerAgreement> ParseCustomerAgreements(string csvFilePath, string errorFilePath)
{
var lines = File.ReadAllLines(csvFilePath).ToList();
var customerAgreements = new List<CustomerAgreement>();
switch (lines.Count)
{
case 0:
this.Context.ConsoleHelper.WriteColored($"{Environment.NewLine}No agreements found.", ConsoleColor.DarkRed);
return customerAgreements;
default:
this.Context.ConsoleHelper.WriteObject(lines[0], $"{Environment.NewLine}Header (first line)");
File.WriteAllText(errorFilePath, $"{lines[0]}{Environment.NewLine}");
break;
}
// Construct customer agreement from csv line.
for (var ptr = 1; ptr < lines.Count; ptr++)
{
var parts = lines[ptr].Split(',').Select(s => s.Trim()).ToList();
bool validLine = !(parts.Count < 8 || string.IsNullOrWhiteSpace(parts[0])
|| string.IsNullOrWhiteSpace(parts[1])
|| string.IsNullOrWhiteSpace(parts[2])
|| string.IsNullOrWhiteSpace(parts[3])
|| string.IsNullOrWhiteSpace(parts[4])
|| string.IsNullOrWhiteSpace(parts[6])
|| string.IsNullOrWhiteSpace(parts[7]));
if (validLine)
{
customerAgreements.Add(new CustomerAgreement
{
Source = lines[ptr],
Valid = true,
CustomerTenantId = parts[0],
CustomerDomainName = parts[1],
Agreement = new Agreement
{
DateAgreed = DateTime.Parse(parts[2]),
PrimaryContact = new Contact
{
FirstName = parts[3],
LastName = parts[4],
PhoneNumber = parts[5],
Email = parts[6]
},
Type = parts[7]
}
,
});
}
else
{
customerAgreements.Add(new CustomerAgreement
{
Source = lines[ptr],
Valid = false,
});
}
}
return customerAgreements;
}