private string GenerateDriverInvalidTrips(DriverData driverData) { var header = $"Invalid {driverData.Name} trips"; var lines = new[] { new[] { header }, driverData.InvalidTrips.Select(t => GenerateDRiverInvalidTripLine(t)) }.SelectMany(l => l); return(string.Join('\n', lines)); }
/// <summary> /// Summarizes the given driver data /// </summary> private string GenerateReportLine(DriverData driverData) { var roundedMiles = Math.Round(driverData.MilesDriven, 0); var driverMiles = $"{driverData.Name}: {roundedMiles} miles"; var line = driverMiles + (roundedMiles > 0 ? $" @ {GetRoundedSpeedMph(driverData.MilesDriven, driverData.TimeDriven)} mph" : ""); line = line + (roundedMiles > 0 ? $", {GetPercentHighway(driverData.MilesDriven, driverData.HighwayMilesDriven)}% highway" : ""); if (driverData.InvalidTrips.Any()) { line += '\n'; line += GenerateDriverInvalidTrips(driverData); } return(line); }