/// <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;
            }
        }