Как использовать When(Func(Boolean)), TimeSpan)
Написал такой код, но он работает не так, как я ожидал.
Видимо это связано с тем, что я не понимаю сиснтаксис работы с правилами
Код
this.When(() => IsRuleActual(order), _waitingPeriod)
.Do(() => ReplaceOrder(order))
.Once()
.Sync(syncRules);
private bool IsRuleActual(Order order)
{
bool isRuleActual = (order.State == OrderStates.Active);
WriteDiagnostics("IsRuleActual " + isRuleActual.ToString());
return isRuleActual;
}
Я ожидал, что спустя указанный промежуток времени, будет вызван метод IsRuleActual, и если он вернет true, то будет вызван обработчик правила - ReplaceOrder. И ещё я ожидал, что метод IsRuleActual будет вызыватся один раз, но он вызывается каждые 30 секунд(в моём случае).
Скажите пожалуйста, как с помощью When(Func<Boolean>), TimeSpan) создать правило, которое при верности условия, вызвыает метод и делает это один раз? и как синхронизировать это правило (т.к. я полагаю, что эта строка тоже не работает Sync(syncRules)) ?