A SOLID Grasp of C# Design: Principles, Refactoring, and a Case-Driven Approach