public void StopTimer(Guid uniqueId, bool automatedStop) { var timerForInteraction = GetTimer(uniqueId); var stopTime = timerForInteraction.StopTimer(); SaveTimers(); if (settingsCollection.ExportSettings.ExportPrompt != null && settingsCollection.ExportSettings.ExportPrompt.OnStop && !timerForInteraction.FullyExported && !automatedStop && !timerForInteraction.LocalTimer) { ExportPrompt?.Invoke(this, new ExportPromptDetail(uniqueId, stopTime)); } }
public void AddIdleTimer(Guid uniqueId, List <IdleTimer> idleTimers) { trackUsage.TrackAppUsage(TrackingType.LockedTimerAdd); var timer = GetTimer(uniqueId); foreach (var idleTimer in idleTimers) { timer.AddIdleTimer(idleTimer); } SaveTimers(); if (settingsCollection.ExportSettings.ExportPrompt != null && settingsCollection.ExportSettings.ExportPrompt.OnAddIdle && !timer.FullyExported && !timer.LocalTimer) { var idleTime = new TimeSpan(); idleTime = idleTimers.Aggregate(idleTime, (current, idleTimer) => current.Add(idleTimer.IdleTimeValue)); ExportPrompt?.Invoke(this, new ExportPromptDetail(uniqueId, idleTime)); } }
public Guid AddTimer(Issue jiraIssue, DateTime startDate, TimeSpan seedTime, bool startNow) { var newTimer = new JiraTimer(jiraIssue, startDate, seedTime); AddTimer(newTimer); if (startNow) { StartTimer(newTimer.UniqueId); } else { if (settingsCollection.ExportSettings.ExportPrompt != null && settingsCollection.ExportSettings.ExportPrompt.OnCreatePreloaded && !newTimer.FullyExported && !newTimer.LocalTimer) { ExportPrompt?.Invoke(this, new ExportPromptDetail(newTimer.UniqueId, seedTime)); } } return(newTimer.UniqueId); }
public bool AdjustTime(Guid uniqueId, int hours, int minutes, bool addTime) { var timer = GetTimer(uniqueId); var adjustment = new TimeSpan(hours, minutes, 0); if (!timer.ManualAdjustment(adjustment, addTime)) { return(false); } SaveTimers(); if (settingsCollection.ExportSettings.ExportPrompt != null && settingsCollection.ExportSettings.ExportPrompt.OnManualAdjust && !timer.FullyExported && !timer.LocalTimer) { if (!addTime) { adjustment = adjustment.Negate(); } ExportPrompt?.Invoke(this, new ExportPromptDetail(uniqueId, adjustment)); } return(true); }