private List ParseCustomerAgreements()

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;
        }