public IActionResult GetPosition(int roverId) { var rover = RoverFactory.GetRover(roverId); if (rover == null) { return(NotFound()); } return(Ok(new RoverMoveResponse { RoverId = rover.Id, RoverName = rover.Name, CurrentX = rover.Position.X, CurrentY = rover.Position.Y, CurrentDirection = rover.Position.Direction.ToString() })); }
public IActionResult Move(int roverId, RoverMoveModel model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var rover = RoverFactory.GetRover(roverId); if (rover == null) { throw new RoverException("Rover doesn't exist."); } var movements = new List <Movement>(); foreach (var inst in model.MovementInstruction.ToUpper()) { switch (inst) { case 'L': movements.Add(Movement.Left); break; case 'R': movements.Add(Movement.Right); break; case 'M': movements.Add(Movement.Move); break; } } rover.Move(movements); return(Ok(new RoverMoveResponse { RoverId = rover.Id, RoverName = rover.Name, CurrentX = rover.Position.X, CurrentY = rover.Position.Y, CurrentDirection = rover.Position.Direction.ToString() })); }