Our problem is $NP$-complete by a reduction from $3SAT$.
For each literal either positive or negative, create a vertex for it.
Set $C$ to be the set of literals themselves.
For each pair of literals of the same variable $x_i$, namely $x_i$ and $\lnot x_i$, connect them by an edge. This ensures that whenever $x_i$ is assigned to $\mathrm{TRUE}$ (all outgoing arcs) then $\lnot x_i$ is assigned to $\mathrm{FALSE}$ (all incoming arcs), and vice versa whenever $\lnot x_i$ is assigned to $\mathrm{TRUE}$ (all outgoing) then $x_i$ is assigned to $\mathrm{FALSE}$ (all incoming). Hence, make sure the assignment is consistent.
Now, we take care of the clauses.
For each clause, create for it a new vertex. Connect this new clause-vertex to its $3$ literal-vertices in $C$. And so, we are done.
A satisfying assignment exists if and only the produced undirected graph can be oriented such that each vertex in $C$ is either a source vertex, i.e. $\mathrm{TRUE}$ with all outgoing arcs, or a sink vertex, i.e. $\mathrm{FALSE}$ with all incoming arcs. A clause-vertex needs to have at least one satisfying literal which is witnessed by the direction of an incoming arc. DONE.