public static ProcessActivityTreeOptions GetValidationOptions(ValidationSettings settings) { ProcessActivityTreeOptions result = null; if (settings.SkipValidatingRootConfiguration && settings.SingleLevel) { result = ProcessActivityTreeOptions.SingleLevelSkipRootConfigurationValidationOptions; } else if (settings.SkipValidatingRootConfiguration) { result = ProcessActivityTreeOptions.SkipRootConfigurationValidationOptions; } else if (settings.SingleLevel) { result = ProcessActivityTreeOptions.SingleLevelValidationOptions; } else if (settings.PrepareForRuntime) { Fx.Assert(!settings.SkipValidatingRootConfiguration && !settings.SingleLevel && !settings.OnlyUseAdditionalConstraints, "PrepareForRuntime cannot be set at the same time any of the three is set."); result = ProcessActivityTreeOptions.ValidationAndPrepareForRuntimeOptions; } else { result = ProcessActivityTreeOptions.ValidationOptions; } if (settings.CancellationToken == CancellationToken.None) { return(result); } else { return(AttachCancellationToken(result, settings.CancellationToken)); } }
private static ProcessActivityTreeOptions AttachCancellationToken(ProcessActivityTreeOptions result, CancellationToken cancellationToken) { ProcessActivityTreeOptions clone = result.Clone(); clone.CancellationToken = cancellationToken; return(clone); }
public static ProcessActivityTreeOptions GetFinishCachingSubtreeOptions(ProcessActivityTreeOptions originalOptions) { ProcessActivityTreeOptions result; if (originalOptions.CreateEmptyBindings) { Fx.Assert(!originalOptions.SkipRootConfigurationValidation, "If we ever add code that uses this combination of options, " + "we need a new predefined setting on ProcessActivityTreeOptions."); result = ProcessActivityTreeOptions.FinishCachingSubtreeOptionsWithCreateEmptyBindings; } else { if (originalOptions.SkipRootConfigurationValidation) { result = ProcessActivityTreeOptions.SkipRootFinishCachingSubtreeOptions; } else { result = ProcessActivityTreeOptions.FinishCachingSubtreeOptionsWithoutCreateEmptyBindings; } } if (originalOptions.CancellationToken == CancellationToken.None) { return(result); } else { return(AttachCancellationToken(result, originalOptions.CancellationToken)); } }