private bool IsValid(GridCoordinateEntity validGridCoordinateEntity)
        {
            var isValid =
                !(validGridCoordinateEntity.XCoordinate > 7) &&
                !(validGridCoordinateEntity.XCoordinate < 0) &&
                !(validGridCoordinateEntity.YCoordinate > 7) &&
                !(validGridCoordinateEntity.YCoordinate < 0);

            return(isValid);
        }
        private List <ChessCoordinatesEntity> GetValidGridMoveCoordinatesList(string chessPiece,
                                                                              GridCoordinateEntity startGridCoordinate)
        {
            var gridCoordinateEntityList =
                GetGridCoordinatesFromInstructions(GetChessPieceEntityByName(chessPiece), startGridCoordinate);

            var validCoordinateEntityList = GetChessCoordinateListFromGridList(gridCoordinateEntityList);

            return(validCoordinateEntityList);
        }
        private ChessCoordinatesEntity GetChessCoordinateFromGridCoordinate(GridCoordinateEntity gridCoordinate)
        {
            var x = gridCoordinate.XCoordinate;
            var y = gridCoordinate.YCoordinate;

            var chessY = (y + 1).ToString();
            var chessX = (char)(x + 97);

            var chessCoordinate = new ChessCoordinatesEntity($"{chessX}{chessY}");

            return(chessCoordinate);
        }
        private GridCoordinateEntity GetGridCoordinateFromChessCoordinate(string startingChessCoordinate)
        {
            //Note, we are not checking the coordinate to validate that it's incorrect. We can add handling in this later.
            var chessX = startingChessCoordinate.Substring(0, 1);
            var chessY = startingChessCoordinate.Substring(1, 1);

            var x = Convert.ToInt16(chessY) - 1;
            var y = Convert.ToChar(chessX.ToLower()) - 97;

            var coordinate = new GridCoordinateEntity {
                YCoordinate = x, XCoordinate = y
            };

            return(coordinate);
        }
        private IEnumerable <GridCoordinateEntity> GetGridCoordinatesFromInstructions(ChessPiecesEntity chessPiecesEntity,
                                                                                      GridCoordinateEntity startGridCoordinate)
        {
            var gridCoordinateEntityList = new List <GridCoordinateEntity>();

            foreach (var gridCoordinateEntity in chessPiecesEntity.GridCoordinateInstructionList)
            {
                var validGridCoordinateEntity = new GridCoordinateEntity
                {
                    XCoordinate = gridCoordinateEntity.XCoordinate + startGridCoordinate.XCoordinate,
                    YCoordinate = gridCoordinateEntity.YCoordinate + startGridCoordinate.YCoordinate
                };

                if (IsValid(validGridCoordinateEntity))
                {
                    gridCoordinateEntityList.Add(validGridCoordinateEntity);
                }
            }

            return(gridCoordinateEntityList);
        }