C# Events - Creating and Consuming Events in Your Application