public void TaskServiceConvertorFactory_SessionState_Test()
        {
            var fact = new TaskServiceConvertorFactory();

            Trigger trig      = new SessionStateChangeTrigger();
            var     wrapped   = new Dev2Trigger(fact, trig);
            var     sanitised = fact.SanitiseTrigger(wrapped);

            AssertEqual(trig, sanitised);
        }
        private void triggerTypeCombo_SelectedValueChanged(object sender, EventArgs e)
        {
            if (triggerTypeCombo.SelectedValue == null)
            {
                return;
            }

            Trigger newTrigger = null;

            switch (TriggerView)
            {
            case TaskTriggerDisplayType.Schedule:
            default:
                settingsTabControl.SelectedTab = scheduleTab;
                if (!onAssignment)
                {
                    newTrigger = new TimeTrigger();
                }
                break;

            case TaskTriggerDisplayType.Logon:
                logonRemotePanel.Visible       = false;
                settingsTabControl.SelectedTab = logonTab;
                if (!onAssignment)
                {
                    newTrigger = new LogonTrigger();
                }
                break;

            case TaskTriggerDisplayType.Boot:
                settingsTabControl.SelectedTab = startupTab;
                if (!onAssignment)
                {
                    newTrigger = new BootTrigger();
                }
                break;

            case TaskTriggerDisplayType.Idle:
                settingsTabControl.SelectedTab = idleTab;
                if (!onAssignment)
                {
                    newTrigger = new IdleTrigger();
                }
                break;

            case TaskTriggerDisplayType.Event:
                settingsTabControl.SelectedTab = onEventTab;
                if (!onAssignment)
                {
                    newTrigger = new EventTrigger();
                }
                break;

            case TaskTriggerDisplayType.Registration:
                settingsTabControl.SelectedTab = startupTab;
                if (!onAssignment)
                {
                    newTrigger = new RegistrationTrigger();
                }
                break;

            case TaskTriggerDisplayType.SessionConnect:
            case TaskTriggerDisplayType.SessionDisconnect:
            case TaskTriggerDisplayType.WorkstationLock:
            case TaskTriggerDisplayType.WorkstationUnlock:
                logonRemotePanel.Visible       = (int)TriggerView < (int)TaskTriggerDisplayType.WorkstationLock;
                settingsTabControl.SelectedTab = logonTab;
                if (!onAssignment)
                {
                    newTrigger = new SessionStateChangeTrigger()
                    {
                        StateChange = (TaskSessionStateChangeType)(TriggerView - 110)
                    }
                }
                ;
                break;

            case TaskTriggerDisplayType.Custom:
                settingsTabControl.SelectedTab = customTab;
                triggerTypeCombo.Enabled       = okBtn.Enabled = false;
                break;
            }

            if (newTrigger != null && !onAssignment)
            {
                if (trigger != null)
                {
                    newTrigger.CopyProperties(trigger);
                }
                if (newTrigger is ICalendarTrigger)
                {
                    if (newTrigger.StartBoundary == DateTime.MinValue)
                    {
                        newTrigger.StartBoundary = DateTime.Now;
                    }
                }
                else
                {
                    newTrigger.StartBoundary = initialStartBoundary;
                }
                Trigger = newTrigger;
            }
        }