本文整理汇总了C#中IOperableTrigger.ToBsonDocument方法的典型用法代码示例。如果您正苦于以下问题:C# IOperableTrigger.ToBsonDocument方法的具体用法?C# IOperableTrigger.ToBsonDocument怎么用?C# IOperableTrigger.ToBsonDocument使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IOperableTrigger
的用法示例。
在下文中一共展示了IOperableTrigger.ToBsonDocument方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: StoreTrigger
/// <summary>
/// Store the given <see cref="ITrigger" />.
/// </summary>
/// <param name="newTrigger">The <see cref="ITrigger" /> to be stored.</param>
/// <param name="replaceExisting">If <see langword="true" />, any <see cref="ITrigger" /> existing in
/// the <see cref="IJobStore" /> with the same name and group should
/// be over-written.</param>
public virtual void StoreTrigger(IOperableTrigger newTrigger, bool replaceExisting)
{
lock (lockObject)
{
if (this.CheckExists(newTrigger.Key))
{
if (!replaceExisting)
{
throw new ObjectAlreadyExistsException(newTrigger);
}
// don't delete orphaned job, this trigger has the job anyways
this.RemoveTrigger(newTrigger.Key, false);
}
if (this.RetrieveJob(newTrigger.JobKey) == null)
{
throw new JobPersistenceException("The job (" + newTrigger.JobKey +
") referenced by the trigger does not exist.");
}
var document = newTrigger.ToBsonDocument();
string state = "Waiting";
if (this.PausedTriggerGroups.FindOneByIdAs<BsonDocument>(newTrigger.Key.Group) != null
|| this.PausedJobGroups.FindOneByIdAs<BsonDocument>(newTrigger.JobKey.Group) != null)
{
state = "Paused";
if (this.BlockedJobs.FindOneByIdAs<BsonDocument>(newTrigger.JobKey.ToBsonDocument()) != null)
{
state = "PausedAndBlocked";
}
}
else if (this.BlockedJobs.FindOneByIdAs<BsonDocument>(newTrigger.JobKey.ToBsonDocument()) != null)
{
state = "Blocked";
}
document.Add("State", state);
this.Triggers.Save(document);
}
}