Domain Event pattern implementation for .NET