// A reusable way to visit each airport in the file/datasource. private void ProcessAllAirports(AirportModel.Visitor visitor) { try { using (var reader = System.IO.File.OpenText(FileFinder.DatasourcePath(this, "airports.csv"))) { using (var csv = new CsvHelper.CsvReader(reader)) { IEnumerable<AirportModel> file_airports = csv.GetRecords<AirportModel>(); foreach (var airport in file_airports) { visitor.AcceptAirport(airport); } } } } catch(Exception e) { // Don't send any (more) entries to the visitor. } }