bool ITrigger.Trigger(DateTime time, IJob job, int runnings) { if (job.Frequencies + 1 > 1) { this.expired = true; return(false); } else if (job.Frequencies + runnings + 1 > 1) { return(false); } if (this.subTrigger != null) { ITrigger trigger = (ITrigger)this.subTrigger; if (trigger.Expired) { this.expired = true; return(false); } bool ret = trigger.Trigger(time, this.subJob, 0); if (ret) { this.subJob.IncrementFrequency(); } return(ret); } else { if (timeLimiter != null) { if (!timeLimiter.Arrived(time)) { return(false); } if (timeLimiter.Beyonded(time)) { this.expired = true; return(false); } else { return(true); } } else { return(true); } } }