public static Command GetCommand(CommandInput commandInput, IRobotPositioningContext positionContext) { var steps = commandInput.NoOfSteps; switch (commandInput.Direction.ToUpper()) { case "N": return(new MoveNorthCommand(steps, positionContext)); case "S": return(new MoveSouthCommand(steps, positionContext)); case "E": return(new MoveEastCommand(steps, positionContext)); case "W": return(new MoveWestCommand(steps, positionContext)); default: throw new ArgumentException("Invalid Command"); } }
public MoveWestCommand(int noOfSteps, IRobotPositioningContext robotPositioningContext) : base(noOfSteps, robotPositioningContext) { }
public Robot(RobotInput input, IRobotPositioningContext positioningContext) { _robotPositioningContext = positioningContext; Configure(input); }
protected Command(int noOfSteps, IRobotPositioningContext robotPositioningContext) { ValidateAndSetStepCount(noOfSteps); RobotPositioningContext = robotPositioningContext; }