Code:
/ 4.0 / 4.0 / 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. // ---------------------------------------------------------------------------- // 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 IList analyzedRules; 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
- HtmlInputHidden.cs
- NamespaceCollection.cs
- RSAProtectedConfigurationProvider.cs
- KeyValueInternalCollection.cs
- NaturalLanguageHyphenator.cs
- MetadataFile.cs
- VerificationAttribute.cs
- PenContext.cs
- FileDocument.cs
- ThemeableAttribute.cs
- SqlEnums.cs
- BaseTransportHeaders.cs
- StrokeSerializer.cs
- DependencyPropertyKind.cs
- XmlSchemaAnyAttribute.cs
- EventDescriptor.cs
- NonBatchDirectoryCompiler.cs
- LinqDataSourceValidationException.cs
- Sorting.cs
- DLinqColumnProvider.cs
- XmlNamespaceDeclarationsAttribute.cs
- DoubleCollectionConverter.cs
- ListViewItemEventArgs.cs
- PopupEventArgs.cs
- SimpleTextLine.cs
- DateTimeFormat.cs
- XhtmlBasicLabelAdapter.cs
- xmlglyphRunInfo.cs
- LostFocusEventManager.cs
- IResourceProvider.cs
- MarkupExtensionReturnTypeAttribute.cs
- EditorAttribute.cs
- externdll.cs
- TypeInfo.cs
- DataSourceCache.cs
- TextComposition.cs
- ImageAutomationPeer.cs
- Message.cs
- PerformanceCounterPermission.cs
- SqlFormatter.cs
- ResourcePart.cs
- RtType.cs
- EntityTypeEmitter.cs
- ResourceWriter.cs
- DateTimeConverter2.cs
- KeyBinding.cs
- SqlXml.cs
- InterleavedZipPartStream.cs
- TabControlEvent.cs
- SerializationHelper.cs
- EventSetter.cs
- ToolStripSeparator.cs
- NativeWrapper.cs
- GeneratedCodeAttribute.cs
- SplashScreen.cs
- XPathParser.cs
- SiteMembershipCondition.cs
- BitmapEffectDrawingContextState.cs
- Stylesheet.cs
- Delegate.cs
- DiagnosticTraceSchemas.cs
- TypeUtil.cs
- GridViewAutomationPeer.cs
- FixedDocument.cs
- InstallerTypeAttribute.cs
- ConfigurationStrings.cs
- DirectoryInfo.cs
- GetWinFXPath.cs
- ScriptServiceAttribute.cs
- WebServiceParameterData.cs
- Font.cs
- AbstractExpressions.cs
- SQLGuid.cs
- XmlSerializerFactory.cs
- UseAttributeSetsAction.cs
- SiteMapSection.cs
- FixedSOMPage.cs
- IdentitySection.cs
- AssemblyResourceLoader.cs
- WebPartDescription.cs
- UnknownBitmapEncoder.cs
- PreviewKeyDownEventArgs.cs
- SystemNetworkInterface.cs
- InputScopeConverter.cs
- TextServicesManager.cs
- HostingEnvironmentException.cs
- VerticalAlignConverter.cs
- HandledMouseEvent.cs
- NullRuntimeConfig.cs
- SqlInternalConnectionSmi.cs
- PrivilegedConfigurationManager.cs
- CanExecuteRoutedEventArgs.cs
- CompiledXpathExpr.cs
- ContextMenuStrip.cs
- QilInvokeLateBound.cs
- SqlFormatter.cs
- HttpResponseInternalWrapper.cs
- _UriTypeConverter.cs
- StylusCollection.cs
- EntityDataSourceWrapperPropertyDescriptor.cs