in Hands-on lab/lab-files/TransactionGenerator/Program.cs [59:79]
private static List<Transaction> GetTransactionData(Func<string, string, Transaction> factory)
{
var transactions = new List<Transaction>();
Console.WriteLine("Retrieving sample transaction data...");
using (var reader = new StreamReader(File.OpenRead(@"cleaned-transactions.csv")))
{
var header = reader.ReadLines()
.First();
var lines = reader.ReadLines()
.Skip(1);
// Instantiate a Transaction object from the CSV line and header data, using the passed in factory:
transactions.AddRange(lines.Select(line => factory(line, header)));
}
Console.WriteLine($"Sample transaction data retrieved. {transactions.Count} records found.");
return transactions;
}