private static CellBase InternalDeepCloneWithColumnsSpanned( CellBase cell, int columnsSpanned) { CellBase result; if (cell is SlottedCell slottedCell) { result = new SlottedCell( slottedCell.SlotIdToCellMap.ToDictionary(_ => _.Key, _ => (INotSlottedCell)((NotSlottedCellBase)_.Value).DeepCloneWithColumnsSpanned(columnsSpanned)), slottedCell.DefaultSlotId, slottedCell.Id, columnsSpanned, slottedCell.Details); } else { result = cell.DeepCloneWithColumnsSpanned(columnsSpanned); } return(result); }