public bool Validate(out string message) { var errorMessages = new StringBuilder(); if (position is XYPosition xyPosition) { var boardPositionValidation = new BoardPositionValidation(width, height, position); string boardPositionValidationMessage; if (!boardPositionValidation.Validate(out boardPositionValidationMessage)) { errorMessages.Append(boardPositionValidationMessage + ", "); } if (size <= 0) { errorMessages.Append($"Size '{size}' cannot be negative, "); } string orientationAndSizeMessage; if (!ValidateOrientationAndSize(xyPosition, out orientationAndSizeMessage)) { errorMessages.Append(orientationAndSizeMessage + ", "); } string existingBattleshipConfigurationsMessage; if (!ValidateExistingBattleshipConfigurations(xyPosition, out existingBattleshipConfigurationsMessage)) { errorMessages.Append(existingBattleshipConfigurationsMessage + ", "); } } message = errorMessages.ToString().Trim(' ', ','); return(errorMessages.Length == 0); }
public bool ValidateHitPosition(string input, out string message) { try { var position = Helper.Convert(input); var validation = new BoardPositionValidation(CurrentPlayer.Board.Width, CurrentPlayer.Board.Height, position); return(validation.Validate(out message)); } catch (Exception ex) { message = ex.Message; return(false); } }