// don't use "this" to make it a real extension method, don't box enums public static bool ShouldSave(IdlePersistenceMode idlePersistenceMode, WorkflowInstanceState workflowInstanceState, bool isStarting) { if (workflowInstanceState == WorkflowInstanceState.Idle) if (isStarting) return idlePersistenceMode.HasFlag(IdlePersistenceMode.OnStart); else return idlePersistenceMode.HasFlag(IdlePersistenceMode.OnPersistableIdle); if (workflowInstanceState == WorkflowInstanceState.Complete) return idlePersistenceMode.HasFlag(IdlePersistenceMode.OnCompleted); return false; }
// don't use "this" to make it a real extension method, don't box enums public static bool ShouldSave(IdlePersistenceMode idlePersistenceMode, WorkflowInstanceState workflowInstanceState, bool isStarting) { if (workflowInstanceState == WorkflowInstanceState.Idle) { if (isStarting) { return(idlePersistenceMode.HasFlag(IdlePersistenceMode.OnStarting)); } else { return(idlePersistenceMode.HasFlag(IdlePersistenceMode.OnPersistableIdle)); } } if (workflowInstanceState == WorkflowInstanceState.Complete) { return(idlePersistenceMode.HasFlag(IdlePersistenceMode.OnCompleted)); } return(false); }
/// <summary> /// See <see cref="Orleans.Activities.Configuration.IParameters"/> for parameter descriptions. /// </summary> public Parameters( // Yes, these are intentionally nullable, this way the default values are centralised and not scattered (and fixed) through the code during compile time. TimeSpan? defaultTimeoutDelay = null, TimeSpan? defaultRetryDelayStartValue = null, Single? defaultRetryDelayDelayMultiplicator = null, TimeSpan? defaultRetryDelayMaxValue = null, TimeSpan? resumeOperationTimeout = null, TimeSpan? resumeInfrastructureTimeout = null, TimeSpan? trackingTimeout = null, TimeSpan? reactivationReminderPeriod = null, IdlePersistenceMode? idlePersistenceMode = null, bool? persistWriteOnlyValues = null, TimeSpan? extensionsPersistenceTimeout = null, UnhandledExceptionAction? unhandledExceptionAction = null) { DefaultTimeoutDelay = defaultTimeoutDelay ?? TimeSpan.FromMinutes(5); DefaultRetryDelayStartValue = defaultRetryDelayStartValue ?? TimeSpan.FromMinutes(1); DefaultRetryDelayDelayMultiplicator = defaultRetryDelayDelayMultiplicator ?? 2.0f; DefaultRetryDelayMaxValue = defaultRetryDelayMaxValue ?? TimeSpan.FromMinutes(60); ResumeOperationTimeout = resumeOperationTimeout ?? TimeSpan.FromSeconds(30); ResumeInfrastructureTimeout = resumeInfrastructureTimeout ?? TimeSpan.FromSeconds(30); TrackingTimeout = trackingTimeout ?? TimeSpan.FromSeconds(30); ReactivationReminderPeriod = reactivationReminderPeriod ?? TimeSpan.FromMinutes(2); IdlePersistenceMode = idlePersistenceMode ?? IdlePersistenceMode.OnPersistableIdle | IdlePersistenceMode.OnCompleted; PersistWriteOnlyValues = persistWriteOnlyValues ?? false; ExtensionsPersistenceTimeout = extensionsPersistenceTimeout ?? TimeSpan.FromSeconds(30); UnhandledExceptionAction = unhandledExceptionAction ?? UnhandledExceptionAction.Abort; }