using System; using System.Globalization; internal static class Program { private static void Main(string[] args) { BookingRecord? record = ParseRecord("W-17|3"); if (record is null) throw new InvalidOperationException("Fixture rejected"); Console.WriteLine($"{record.Code}: {record.Places}"); Console.WriteLine($"Junk accepted: {ParseRecord("W-17|3x") is not null}"); } internal static BookingRecord? ParseRecord(string? line) { if (line is null) return null; string[] fields = line.Split('|'); if (fields.Length != 2 || string.IsNullOrWhiteSpace(fields[0])) return null; foreach (char c in fields[0]) if (char.IsWhiteSpace(c)) return null; if (!int.TryParse(fields[1], NumberStyles.None, CultureInfo.InvariantCulture, out int places) || places is < 1 or > 20) return null; return new BookingRecord(fields[0], places); } } internal sealed record BookingRecord(string Code, int Places);