public static ClockAggregateRoot Now()
    {
        var stopwatchTimestamp   = Stopwatch.GetTimestamp();
        var environmentTickCount = Environment.TickCount;
        var universalTime        = DateTime.UtcNow;
        var localTime            = universalTime.ToLocalTime();
        var clockAggregateState  = new ClockAggregateState(stopwatchTimestamp, environmentTickCount, universalTime, localTime);

        return(new ClockAggregateRoot(clockAggregateState));
    }
 internal ClockAggregateRoot(ClockAggregateState clockAggregateState)
 {
     Assert.IsNotNull(clockAggregateState);
     _clockAggregateState = clockAggregateState;
 }
 internal ClockAggregateRoot(ClockAggregateState clockAggregateState)
 {
     ArgumentNullException.ThrowIfNull(clockAggregateState);
     _clockAggregateState = clockAggregateState;
 }