/// <summary> /// Clears all tracked events and periods and sets a new start event. /// <param name="startEvent">The new start event.</param> /// </summary> public void ClearTrackedState(TrackableEvent startEvent) { _events.Clear(); _events.Add(startEvent); _completedPeriods.Clear(); _currentTimePeriod = null; }
/// <summary> /// Gets all tracked time periods. /// </summary> /// <param name="currentTime">Current time. Needed for calculating the /// duration of the current time period.</param> /// <returns>All time periods.</returns> public IList<TimePeriod> GetPeriods(DateTime currentTime) { IList<TimePeriod> periods = new List<TimePeriod>(_completedPeriods); if (_currentTimePeriod == null) { _currentTimePeriod = new TimePeriod(GetPeriodTypeFromEvent(LastEvent.Activity)); } _currentTimePeriod.Duration = GetPeriodDuration(LastEvent.Time, currentTime); periods.Add(_currentTimePeriod); return periods; }
/// <summary> /// Adds a trackable event to the time tracker. /// </summary> /// <param name="trackableEvent">Trackable event.</param> public void AddEvent(TrackableEvent trackableEvent) { TrackableEvent previousEvent = LastEvent; _events.Add(trackableEvent); TimePeriod newPeriod = new TimePeriod(GetPeriodTypeFromEvent(previousEvent.Activity), GetPeriodDuration(previousEvent.Time, trackableEvent.Time)); if (_currentTimePeriod != null) { newPeriod.IsWorkTime = _currentTimePeriod.IsWorkTime; _currentTimePeriod = null; } _completedPeriods.Add(newPeriod); }