The ConnectionLoader class is both too large and too complex to be effectively managed. Refactor with the following goals in mind:
Ensure classes conform to SRP. Extract new classes as required.
Reduce class coupling. Make sure classes are testable in isolation.
General C# code practices
use 'var' where possible
collapse instance fields and properties to just properties where possible
reduce conditional nesting as much as possible