public void MaybeCancelRunawayTimer(double maxTrailingLoggedMinutes)
        {
            double trailingLoggedMinutes = GetTrailingLoggedMinutes();

            if (trailingLoggedMinutes < maxTrailingLoggedMinutes)
            {
                return;
            }
            double   minutesToCancel = trailingLoggedMinutes - maxTrailingLoggedMinutes;
            long     millisToCancel  = (long)(minutesToCancel * Minutes);
            DateTime cancelTime      = DateTime.UtcNow.AddMilliseconds(-millisToCancel);

            CancelTimingAsOf(cancelTime);
            TimeLoggingController.GetInstance().OnTimeLoggingStateChanged(TimeLoggingControllerStates.TimeLogStopped, "Timer stopped automatically.");
        }