solid principles c# online test