Exemplo n.º 1
0
        private void WorkingTimerTick(object obj, EventArgs args)
        {
            switch (state)
            {
            case STATES.FinishingSession:
            {
                if (seconds_ToTheEnd > 0)
                {
                    this.GridFinisher.Visibility = Visibility.Visible;
                    MiddleInformer.Content       = String.Format("{0} секунд(-ы).", seconds_ToTheEnd);
                    seconds_ToTheEnd--;
                    MinimizeAllWindows();
                    if (!ProcessManager.IsForegrount())
                    {
                        this.Topmost = false;
                        this.Topmost = true;
                        InvalidateVisual();
                    }
                }
                else
                {
                    State = STATES.NotSession;
                }
                break;
            }

            case STATES.NotSession:
            {
                if (this.IsActiveSession)
                {
                    State = STATES.Session;
                }
                else
                {
                    if (!isLocked)
                    {
                        Lock();
                    }
                    if (!ProcessManager.IsForegrount())
                    {
                        this.Topmost = false;
                        this.Topmost = true;
                        InvalidateVisual();
                    }
                }

                break;
            }

            case STATES.Session:
            case STATES.LastFiveMinutes:
            {
                if (!this.IsActiveSession)
                {
                    State = STATES.FinishingSession;
                }
                else if (this.IsPaused)
                {
                    State = STATES.Pause;
                }
                else if (
                    state != STATES.LastFiveMinutes &&
                    SessionHandler.LessThenFiveMin())
                {
                    State = STATES.LastFiveMinutes;
                }
                break;
            }

            case STATES.Pause:
            {
                if (!this.IsActiveSession)
                {
                    State = STATES.FinishingSession;
                }
                else if (!this.IsPaused)
                {
                    State = STATES.Session;
                }
                break;
            }

            case STATES.AdminSession:
            {
                if (this.IsActiveSession)
                {
                    State = STATES.Session;
                }
                break;
            }
            }
        }