ASCII art reflection In this challenge, you will be given a text block, and you need to perform reflection on the text.
Input:

A string to be reflected. The text may not be supplied as an array whose elements are the lines of text. For example, &quot;ab\ncd&quot; and ['a','b','\n','c','d'] are allowed, but ['ab','cd'] or [['a','b'],['c','d']] are not. You can assume that all of the lines have the same number of characters (padded with whitespace where needed).
A boolean where True indicates Y reflection and False indicates X reflection

The two inputs can be passed in any order.
Output:
The reflected string. The characters do not change, only their position. The resulting image block should be aligned to the top left (the first row and column must each contain a non-whitespace character). Trailing whitespace (on any of the lines) is allowed.
Test cases:
False
  o /
--|/
  |
 / \

/ o
 /|--
  |
 \ /


True
  o /
--|/
  |
 / \

 / \
  |
--|/
  o /


True
text

text


False
text

txet


True
P
P
C
G

G
C
P
P


False
P
P
C
G

P
P
C
G


True
abcde
fghij
kl mn
opqrs
tuvwx

tuvwx
opqrs
kl mn
fghij
abcde

This is a code-golf, so answer with the shortest answer in your favorite language!
C#, 168 144 141 120 Bytes
using System.Linq;i=&gt;y=&gt;string.Join(&quot;\n&quot;,y?i.Split('\n').Reverse():i.Split('\n').Select(x=&gt;string.Concat(x.Reverse())));

New version utilizes the obvious string.Join overload that takes an IEnumerable, the first solution was using it inadvertently I was just able to use it for the else side of the ternary as well.
Update:
New version is an anonymous lambda and uses currying to save 21 bytes total. This changes usage to be f(&quot;text&quot;)(false) where f is the anonymous function.
Ungolfed:
using System.Linq;

//Using currying to save one byte
input =&gt; IsYReflect =&gt;
         //Lambda makes return implicit
         string.Join(&quot;\n&quot;, IsYReflect
            //Y Reflect, just need to reverse the array
            ? input.Split('\n').Reverse()
            //X Reflect, reverse each line into an IEnumerable
            : input.Split('\n').Select(x =&gt; string.Concat(x.Reverse())));