C# Chain of Responsibility