public void PerformMidnightCorrection(IActivity currentActivity, ITimeLogsManager timeLogsManager) { DateTime endTime = currentActivity.End; DateTime midnightTime = endTime.Date; DateTime startTime = currentActivity.Start; if (startTime < midnightTime) { TimeSpan oldDayActivityDuration = midnightTime - startTime; TimeSpan newDayActivityDuration = endTime - midnightTime; currentActivity.Duration = oldDayActivityDuration; if (timeLogsManager != null) { ITimeLog timeLog = timeLogsManager.ActiveTimeLog; if (timeLog != null) { timeLog.AddActivity(currentActivity); } timeLogsManager.ActivateTimeLog(midnightTime); } currentActivity.Start = midnightTime; currentActivity.Duration = newDayActivityDuration; } }