public static Move ToMove(this MoveDto dto, Game game) { var color = (Player.Color)dto.color; return(new Move { Color = (Player.Color)dto.color, From = game.Points.Single(p => p.GetNumber(color) == dto.from), To = game.Points.Single(p => p.GetNumber(color) == dto.to), }); }
public static MoveDto ToDto(this Move move) { var moveDto = new MoveDto { color = (PlayerColor)move.Color, from = move.From.GetNumber(move.Color), to = move.To.GetNumber(move.Color), // recursing up in move tree nextMoves = move.NextMoves.Select(move => move.ToDto()).ToArray() }; return(moveDto); }