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); } } }
bool ITrigger.Trigger(DateTime time, int succeedCount, int runningCount) { if (succeedCount + 1 > 1) { this.expired = true; return(false); } else if (succeedCount + runningCount + 1 > 1) { return(false); } if (this.tryTrigger != null) { ITrigger trigger = (ITrigger)this.tryTrigger; if (trigger.Expired) { this.expired = true; return(false); } bool ret = trigger.Trigger(time, this.hasTried, 0); if (ret) { this.hasTried++; } return(ret); } else { if (timeLimiter != null) { if (timeLimiter.Unarrive(time)) { return(false); } if (timeLimiter.Beyonded(time)) { this.expired = true; return(false); } else { return(true); } } else { return(true); } } }