public string Execute(ICommandHandler command) { if (command.Name != "SetupPark" && VehiclePark == null) { return "The vehicle park has not been set up"; } switch(command.Name.ToString()) { case "SetupPark": VehiclePark = new VehiclePark(int.Parse(command.Parameters["sectors"]), int.Parse(command.Parameters["placesPerSector"])); return "Vehicle park created"; case "Park": switch (command.Parameters["type"]) { case "car": return VehiclePark.InsertCar(new Car(command.Parameters["licensePlate"], command.Parameters["owner"], int.Parse(command.Parameters["hours"])), int.Parse(command.Parameters["sector"]), int.Parse(command.Parameters["place"]), DateTime.Parse(command.Parameters["time"], null, System.Globalization.DateTimeStyles.RoundtripKind)); case "motorbike": return VehiclePark.InsertMotorbike(new Motorbike(command.Parameters["licensePlate"], command.Parameters["owner"], int.Parse(command.Parameters["hours"])), int.Parse(command.Parameters["sector"]), int.Parse(command.Parameters["place"]), DateTime.Parse(command.Parameters["time"], null, System.Globalization.DateTimeStyles.RoundtripKind)); case "truck": return VehiclePark.InsertTruck(new Truck(command.Parameters["licensePlate"], command.Parameters["owner"], int.Parse(command.Parameters["hours"])), int.Parse(command.Parameters["sector"]), int.Parse(command.Parameters["place"]), DateTime.Parse(command.Parameters["time"], null, System.Globalization.DateTimeStyles.RoundtripKind)); } break; case "Exit": return VehiclePark.ExitVehicle(command.Parameters["licensePlate"], DateTime.Parse(command.Parameters["time"], null, System.Globalization.DateTimeStyles.RoundtripKind), decimal.Parse(command.Parameters["money"])); case "Status": return VehiclePark.GetStatus(); case "FindVehicle": return VehiclePark.FindVehicle(command.Parameters["licensePlate"]); case "VehiclesByOwner": return VehiclePark.FindVehiclesByOwner(command.Parameters["owner"]); default: throw new IndexOutOfRangeException("Invalid command."); } return string.Empty; }
public string Execution(ICommand command) { if (command.Name != "SetupPark" && VehiclePark == null) { return("The vehicle park has not been set up"); } switch (command.Name) { //SetupPark {"sectors": 3, "placesPerSector": 5} case "SetupPark": { int iniciatedSectors = int.Parse(command.Parameters["sectors"]); int initiatedPlacesPerSector = int.Parse(command.Parameters["placesPerSector"]); if (iniciatedSectors <= 0) { return("The number of sectors must be positive"); } if (initiatedPlacesPerSector <= 0) { return("The number of places per sector must be positive"); } this.VehiclePark = new VehiclePark(iniciatedSectors, initiatedPlacesPerSector); return("Vehicle park created"); break; } case "Park": { switch (command.Parameters["type"]) { case "car": { return(this.ExecuteParkCar(command)); break; } case "motorbike": { return(ExecuteParkMotorbike(command)); break; } case "truck": { return(ExecuteParkTruck(command)); break; } default: throw new IndexOutOfRangeException("Invalid command inside."); } break; } case "Exit": { return(VehiclePark.ExitVehicle( command.Parameters["licensePlate"], DateTime.Parse(command.Parameters["time"], null, System.Globalization.DateTimeStyles.RoundtripKind), decimal.Parse(command.Parameters["paid"]))); break; } case "Status": { return(VehiclePark.GetStatus()); break; } case "FindVehicle": { return(VehiclePark.FindVehicle(command.Parameters["licensePlate"])); break; } case "VehiclesByOwner": { return(VehiclePark.FindVehiclesByOwner(command.Parameters["owner"])); break; } default: throw new IndexOutOfRangeException("Invalid command."); } }