Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WF / Activities / Rules / RuleEngine.cs / 1305376 / RuleEngine.cs
// ---------------------------------------------------------------------------- // Copyright (C) 2006 Microsoft Corporation All Rights Reserved // --------------------------------------------------------------------------- #define CODE_ANALYSIS using System.Collections.Generic; using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Workflow.ComponentModel; namespace System.Workflow.Activities.Rules { public class RuleEngine { private string name; private RuleValidation validation; private IListanalyzedRules; public RuleEngine(RuleSet ruleSet, RuleValidation validation) : this(ruleSet, validation, null) { } public RuleEngine(RuleSet ruleSet, Type objectType) : this(ruleSet, new RuleValidation(objectType, null), null) { } internal RuleEngine(RuleSet ruleSet, RuleValidation validation, ActivityExecutionContext executionContext) { // now validate it if (!ruleSet.Validate(validation)) { string message = string.Format(CultureInfo.CurrentCulture, Messages.RuleSetValidationFailed, ruleSet.name); throw new RuleSetValidationException(message, validation.Errors); } this.name = ruleSet.Name; this.validation = validation; Tracer tracer = null; if (WorkflowActivityTrace.Rules.Switch.ShouldTrace(TraceEventType.Information)) tracer = new Tracer(ruleSet.Name, executionContext); this.analyzedRules = Executor.Preprocess(ruleSet.ChainingBehavior, ruleSet.Rules, validation, tracer); } [SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", MessageId = "0#")] public void Execute(object thisObject, ActivityExecutionContext executionContext) { Execute(new RuleExecution(validation, thisObject, executionContext)); } [SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", MessageId = "0#")] public void Execute(object thisObject) { Execute(new RuleExecution(validation, thisObject, null)); } internal void Execute(RuleExecution ruleExecution) { Tracer tracer = null; if (WorkflowActivityTrace.Rules.Switch.ShouldTrace(TraceEventType.Information)) { tracer = new Tracer(name, ruleExecution.ActivityExecutionContext); tracer.StartRuleSet(); } Executor.ExecuteRuleSet(analyzedRules, ruleExecution, tracer, RuleSet.RuleSetTrackingKey + name); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DetailsView.cs
- DataFormats.cs
- RoleManagerModule.cs
- CommandLibraryHelper.cs
- DynamicILGenerator.cs
- CacheDict.cs
- TokenBasedSetEnumerator.cs
- SmiEventSink_Default.cs
- LocatorPart.cs
- Accessible.cs
- SQLGuidStorage.cs
- Freezable.cs
- GridViewAutoFormat.cs
- InputChannelAcceptor.cs
- DecoderExceptionFallback.cs
- ToolStripSeparator.cs
- SqlPersistenceProviderFactory.cs
- QilUnary.cs
- Frame.cs
- SqlGatherConsumedAliases.cs
- SqlConnectionFactory.cs
- TextViewElement.cs
- FormsAuthenticationCredentials.cs
- SecurityTokenRequirement.cs
- DocumentReferenceCollection.cs
- LowerCaseStringConverter.cs
- EdmItemError.cs
- CultureNotFoundException.cs
- DataSourceGroupCollection.cs
- InternalConfigRoot.cs
- SrgsRulesCollection.cs
- NotifyInputEventArgs.cs
- DataSourceHelper.cs
- ComponentResourceKey.cs
- StructuredProperty.cs
- BitmapSizeOptions.cs
- ElementProxy.cs
- TransactionTraceIdentifier.cs
- RegexNode.cs
- SortExpressionBuilder.cs
- PathFigureCollectionConverter.cs
- SecurityProtocolCorrelationState.cs
- FlowLayoutPanel.cs
- DataConnectionHelper.cs
- HttpModule.cs
- XamlInt32CollectionSerializer.cs
- IdentityModelStringsVersion1.cs
- TrueReadOnlyCollection.cs
- StringFunctions.cs
- MenuItemAutomationPeer.cs
- ByteStreamMessageUtility.cs
- PhonemeConverter.cs
- ListItemConverter.cs
- Rect3DConverter.cs
- RegularExpressionValidator.cs
- HttpsHostedTransportConfiguration.cs
- DataIdProcessor.cs
- ProtocolsConfigurationEntry.cs
- SortedDictionary.cs
- SerializationStore.cs
- HtmlProps.cs
- EntityDataSourceStatementEditor.cs
- GeneralTransformGroup.cs
- Duration.cs
- ConvertTextFrag.cs
- TheQuery.cs
- rsa.cs
- DirectoryRootQuery.cs
- XPathDocument.cs
- ReadWriteSpinLock.cs
- EditorZone.cs
- RawStylusSystemGestureInputReport.cs
- RetrieveVirtualItemEventArgs.cs
- Validator.cs
- XPathCompileException.cs
- MultipleViewPatternIdentifiers.cs
- Timer.cs
- RadioButton.cs
- SqlProcedureAttribute.cs
- QueryContinueDragEventArgs.cs
- codemethodreferenceexpression.cs
- WindowsStreamSecurityBindingElement.cs
- UrlMappingsSection.cs
- MobileResource.cs
- CookieProtection.cs
- SyndicationFeedFormatter.cs
- HwndProxyElementProvider.cs
- _BaseOverlappedAsyncResult.cs
- PropertyGroupDescription.cs
- StringResourceManager.cs
- MatrixAnimationUsingPath.cs
- ProfessionalColors.cs
- ActivityPreviewDesigner.cs
- CodeComment.cs
- ReceiveCompletedEventArgs.cs
- WindowsStreamSecurityElement.cs
- Type.cs
- StaticFileHandler.cs
- HelpOperationInvoker.cs
- DocComment.cs