static void Main() { League league = new League(); string input; while ((input = Console.ReadLine()) != "END") { try { string[] tokens = ReadData(input); string command = tokens[0]; string teamName = tokens[1]; switch (command) { case "Team": league.AddTeam(teamName); break; case "Add": string playerName = tokens[2]; int[] stats = tokens.Skip(3).Select(int.Parse).ToArray(); league.AddPlayerToTeam(teamName, playerName, stats); break; case "Remove": playerName = tokens[2]; league.RemovePlayer(teamName, playerName); break; case "Rating": league.RatingTeam(teamName); break; default: throw new InvalidOperationException("Invalid command."); } } catch (ArgumentException ex) { Console.WriteLine(ex.Message); } } }
public static void HandleInput(string input) { var inputArgs = input.Split(); switch (inputArgs[0]) { case "AddTeam": League.AddTeam(new Team(inputArgs[1], inputArgs[2], DateTime.Parse(inputArgs[3]))); break; case "AddMatch": var homeTeam = League.Teams.First(t => t.Name == inputArgs[2]); var awayTeam = League.Teams.First(t => t.Name == inputArgs[3]); League.AddMatch(new Match(homeTeam, awayTeam, new Score(int.Parse(inputArgs[4]), int.Parse(inputArgs[5])), int.Parse(inputArgs[1]))); break; case "AddPlayerToTeam": var team = League.Teams.First(t => t.Name == inputArgs[5]); League.AddPlayerToTeam(new Player(inputArgs[1], inputArgs[2], DateTime.Parse(inputArgs[3]), decimal.Parse(inputArgs[4]), team)); break; case "ListTeams": foreach (var team1 in League.Teams) { Console.WriteLine(team1.ToString()); } break; case "ListMatches": foreach (var match in League.Matches) { Console.WriteLine(match.ToString()); } break; } }