A simple .NET solution using C# with a good DDD approach