public ITrigger SanitiseTrigger(ITrigger resource) { ITrigger trigger = new Dev2Trigger(this, resource.Instance); Trigger serialisedTrigger = resource.Instance; switch (resource.Instance.TriggerType) { case TaskTriggerType.Boot: trigger = new Dev2BootTrigger(this, new BootTrigger()); ExtractDelay(resource.Instance as ITriggerDelay, trigger.Instance as ITriggerDelay); break; case TaskTriggerType.Custom: trigger = new Dev2Trigger(this, new DailyTrigger()); break; case TaskTriggerType.Daily: // ReSharper disable PossibleNullReferenceException trigger = new Dev2DailyTrigger(this, new DailyTrigger((serialisedTrigger as DailyTrigger).DaysInterval)); // ReSharper restore PossibleNullReferenceException break; case TaskTriggerType.Event: var evt = resource.Instance as EventTrigger; if (evt != null) { int? eventId; string source; string log; evt.GetBasic(out log, out source, out eventId); trigger = new Dev2EventTrigger(this, new EventTrigger(log, source, eventId)); } break; case TaskTriggerType.Idle: trigger = new Dev2IdleTrigger(this, new IdleTrigger()); break; case TaskTriggerType.Logon: var logonTrigger = resource.Instance as LogonTrigger; if (logonTrigger != null) { trigger = new Dev2LogonTrigger(this, new LogonTrigger { UserId = logonTrigger.UserId }); } break; case TaskTriggerType.Monthly: var a = (serialisedTrigger as MonthlyTrigger); // ReSharper disable PossibleNullReferenceException trigger = new Dev2MonthlyTrigger(this, new MonthlyTrigger(a.DaysOfMonth.First(), a.MonthsOfYear)); // ReSharper restore PossibleNullReferenceException break; case TaskTriggerType.MonthlyDOW: var b = (serialisedTrigger as MonthlyDOWTrigger); trigger = new Dev2MonthlyDowTrigger(this, // ReSharper disable PossibleNullReferenceException new MonthlyDOWTrigger(b.DaysOfWeek, b.MonthsOfYear, b.WeeksOfMonth)); // ReSharper restore PossibleNullReferenceException break; case TaskTriggerType.Registration: trigger = new Dev2RegistrationTrigger(this, new RegistrationTrigger()); break; case TaskTriggerType.SessionStateChange: var sessionStateChangeTrigger = resource.Instance as SessionStateChangeTrigger; if (sessionStateChangeTrigger != null) { trigger = new Dev2Trigger(this, new SessionStateChangeTrigger { UserId = sessionStateChangeTrigger.UserId, StateChange = sessionStateChangeTrigger.StateChange }); } break; case TaskTriggerType.Time: var y = (serialisedTrigger as TimeTrigger); // ReSharper disable PossibleNullReferenceException trigger = new Dev2TimeTrigger(this, new TimeTrigger(y.StartBoundary)); // ReSharper restore PossibleNullReferenceException break; case TaskTriggerType.Weekly: var z = (serialisedTrigger as WeeklyTrigger); // ReSharper disable PossibleNullReferenceException trigger = new Dev2WeeklyTrigger(this, new WeeklyTrigger(z.DaysOfWeek, z.WeeksInterval)); // ReSharper restore PossibleNullReferenceException break; default: trigger = null; break; } if (trigger != null) { trigger.Enabled = resource.Enabled; trigger.EndBoundary = resource.EndBoundary; trigger.StartBoundary = resource.StartBoundary; trigger.Repetition.Duration = resource.Repetition.Duration; trigger.Repetition.Interval = resource.Repetition.Interval; trigger.Repetition.StopAtDurationEnd = resource.Repetition.StopAtDurationEnd; ExtractDelay(resource.Instance as ITriggerDelay, trigger.Instance as ITriggerDelay); } return(trigger); }
public ITrigger SanitiseTrigger(ITrigger resource) { ITrigger trigger = new Dev2Trigger(this, resource.Instance); Trigger serialisedTrigger = resource.Instance; switch (resource.Instance.TriggerType) { case TaskTriggerType.Boot: trigger = new Dev2BootTrigger(this, new BootTrigger()); ExtractDelay(resource.Instance as ITriggerDelay, trigger.Instance as ITriggerDelay); break; case TaskTriggerType.Custom: trigger = new Dev2Trigger(this, new DailyTrigger()); break; case TaskTriggerType.Daily: // ReSharper disable PossibleNullReferenceException trigger = new Dev2DailyTrigger(this, new DailyTrigger((serialisedTrigger as DailyTrigger).DaysInterval)); // ReSharper restore PossibleNullReferenceException break; case TaskTriggerType.Event: var evt = resource.Instance as EventTrigger; if (evt != null) { int? eventId; string source; string log; evt.GetBasic(out log, out source, out eventId); trigger = new Dev2EventTrigger(this, new EventTrigger(log, source, eventId)); } break; case TaskTriggerType.Idle: trigger = new Dev2IdleTrigger(this, new IdleTrigger()); break; case TaskTriggerType.Logon: var logonTrigger = resource.Instance as LogonTrigger; if (logonTrigger != null) trigger = new Dev2LogonTrigger(this, new LogonTrigger {UserId = logonTrigger.UserId}); break; case TaskTriggerType.Monthly: var a = (serialisedTrigger as MonthlyTrigger); // ReSharper disable PossibleNullReferenceException trigger = new Dev2MonthlyTrigger(this, new MonthlyTrigger(a.DaysOfMonth.First(), a.MonthsOfYear)); // ReSharper restore PossibleNullReferenceException break; case TaskTriggerType.MonthlyDOW: var b = (serialisedTrigger as MonthlyDOWTrigger); trigger = new Dev2MonthlyDowTrigger(this, // ReSharper disable PossibleNullReferenceException new MonthlyDOWTrigger(b.DaysOfWeek, b.MonthsOfYear, b.WeeksOfMonth)); // ReSharper restore PossibleNullReferenceException break; case TaskTriggerType.Registration: trigger = new Dev2RegistrationTrigger(this, new RegistrationTrigger()); break; case TaskTriggerType.SessionStateChange: var sessionStateChangeTrigger = resource.Instance as SessionStateChangeTrigger; if (sessionStateChangeTrigger != null) trigger = new Dev2Trigger(this, new SessionStateChangeTrigger { UserId = sessionStateChangeTrigger.UserId, StateChange = sessionStateChangeTrigger.StateChange }); break; case TaskTriggerType.Time: var y = (serialisedTrigger as TimeTrigger); // ReSharper disable PossibleNullReferenceException trigger = new Dev2TimeTrigger(this, new TimeTrigger(y.StartBoundary)); // ReSharper restore PossibleNullReferenceException break; case TaskTriggerType.Weekly: var z = (serialisedTrigger as WeeklyTrigger); // ReSharper disable PossibleNullReferenceException trigger = new Dev2WeeklyTrigger(this, new WeeklyTrigger(z.DaysOfWeek, z.WeeksInterval)); // ReSharper restore PossibleNullReferenceException break; default: trigger = null; break; } if (trigger != null) { trigger.Enabled = resource.Enabled; trigger.EndBoundary = resource.EndBoundary; trigger.StartBoundary = resource.StartBoundary; trigger.Repetition.Duration = resource.Repetition.Duration; trigger.Repetition.Interval = resource.Repetition.Interval; trigger.Repetition.StopAtDurationEnd = resource.Repetition.StopAtDurationEnd; ExtractDelay(resource.Instance as ITriggerDelay, trigger.Instance as ITriggerDelay); } return trigger; }