/// <summary> /// Начало перерыва в работе /// </summary> private void StartBreakInterval() { _intervalStart = DateTime.Now.TimeOfDay; _status = PomodoroStatuses.BreakInterval; BreakIntervalStarted?.Invoke(this, new IntervalStartedArgs() { IntervalLength = BreakInterval, IterationNumber = _currentSeriesPomodoroCount }); }
/// <summary> /// Прерывает серию /// </summary> public void InterruptSeries() { _status = PomodoroStatuses.Idle; IdleIntervalStarted(); }
private void TickWorker(object state) { switch (_status) { case PomodoroStatuses.Idle: break; case PomodoroStatuses.WorkInterval: if (CheckEndInterval(WorkInterval)) { _status = PomodoroStatuses.AfterWorkInterval; WorkIntervalEnded?.Invoke( this, new IntervalEndedArgs() { Actions = new[] { _currentSeriesPomodoroCount < 4 ? new BallonAction() { Caption = "Отдых", Action = StartBreakInterval } : new BallonAction() { Caption = "Завершить", Action = () => SeriesEnded?.Invoke() }, new BallonAction() { Caption = "Отмена", Action = InterruptSeries } } }); } break; case PomodoroStatuses.AfterWorkInterval: break; case PomodoroStatuses.BreakInterval: if (CheckEndInterval(BreakInterval)) { _status = PomodoroStatuses.AfterBreakInterval; BreakIntervalEnded?.Invoke( this, new IntervalEndedArgs() { Actions = new[] { new BallonAction() { Caption = "Помидорка", Action = StartWorkInterval }, new BallonAction() { Caption = "Отмена", Action = InterruptSeries } } }); } break; case PomodoroStatuses.AfterBreakInterval: break; default: break; } }