/// <summary>
        /// Gets the rows to remove.
        /// </summary>
        /// <param name="shapeModel">The shape model.</param>
        /// <returns>A list of row indexes</returns>
        private static List <int> GetRowsToRemove(this ShapeModel shapeModel)
        {
            var rowsToRemove = new List <int>();

            for (int row = shapeModel.LastRow(); row >= 1; row--)
            {
                if (shapeModel.GetRow(row).All(b => b.Color == CGA16Colors.Black.GetColor()))
                {
                    rowsToRemove.Add(row);
                }
                else
                {
                    break;
                }
            }

            for (int row = 1; row <= shapeModel.LastRow(); row++)
            {
                if (shapeModel.GetRow(row).All(b => b.Color == CGA16Colors.Black.GetColor()))
                {
                    rowsToRemove.Add(row);
                }
                else
                {
                    break;
                }
            }

            rowsToRemove.Sort();
            rowsToRemove.Reverse();
            return(rowsToRemove);
        }