public string ParseCommand(string line) { string[] commandParts = CommandUtilities.ParseCommandWithParameters(line); string commandName = commandParts[0]; string[] commandParameters = new string[commandParts.Length - 1]; for (int i = 1; i < commandParts.Length; i++) { commandParameters[i - 1] = commandParts[i]; } string commandResult = "Invalid command!"; switch (commandName) { case "AddAir": commandResult = this.AddAirTicket( flightNumber: commandParameters[0], from: commandParameters[1], to: commandParameters[2], airline: commandParameters[3], dateTime: Parser.ParseDateTime(commandParameters[4]), price: decimal.Parse(commandParameters[5])); break; case "DeleteAir": commandResult = this.DeleteAirTicket( commandParameters[0]); break; case "AddTrain": commandResult = this.AddTrainTicket( commandParameters[0], commandParameters[1], Parser.ParseDateTime(commandParameters[2]), decimal.Parse(commandParameters[3]), decimal.Parse(commandParameters[4])); break; case "DeleteTrain": commandResult = this.DeleteTrainTicket( commandParameters[0], commandParameters[1], Parser.ParseDateTime(commandParameters[2])); break; case "AddBus": commandResult = this.AddBusTicket( commandParameters[0], commandParameters[1], commandParameters[2], Parser.ParseDateTime(commandParameters[3]), decimal.Parse(commandParameters[4])); break; case "DeleteBus": commandResult = this.DeleteBusTicket( commandParameters[0], commandParameters[1], commandParameters[2], Parser.ParseDateTime(commandParameters[3])); break; case "FindTickets": commandResult = this.FindTickets( commandParameters[0], commandParameters[1]); break; case "FindTicketsInInterval": commandResult = this.FindTicketsInInterval( Parser.ParseDateTime(commandParameters[0]), Parser.ParseDateTime(commandParameters[1])); break; } return(commandResult); }