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
- SpecialNameAttribute.cs
- TableLayoutStyleCollection.cs
- _ListenerAsyncResult.cs
- EnumerableCollectionView.cs
- CalculatedColumn.cs
- ClientRequest.cs
- NodeFunctions.cs
- Pen.cs
- Image.cs
- GenericsNotImplementedException.cs
- XslAstAnalyzer.cs
- ExtenderProvidedPropertyAttribute.cs
- Input.cs
- TemplateManager.cs
- StandardOleMarshalObject.cs
- OdbcHandle.cs
- PointKeyFrameCollection.cs
- ValidatorCompatibilityHelper.cs
- arc.cs
- DataGridViewCellMouseEventArgs.cs
- TrackingProfileCache.cs
- NetworkInterface.cs
- TableLayoutStyle.cs
- Wildcard.cs
- DecimalAnimation.cs
- XPathAncestorIterator.cs
- AnnotationAuthorChangedEventArgs.cs
- FixedNode.cs
- PerformanceCounterPermission.cs
- ListViewTableCell.cs
- WSHttpBindingCollectionElement.cs
- DynamicValidatorEventArgs.cs
- FormViewModeEventArgs.cs
- ScriptingProfileServiceSection.cs
- XmlSchemaType.cs
- Wizard.cs
- XmlCodeExporter.cs
- RuleValidation.cs
- BaseTemplateParser.cs
- WindowsFormsHelpers.cs
- GetParentChain.cs
- CodeRegionDirective.cs
- BinaryObjectWriter.cs
- BaseProcessor.cs
- WebPartTransformerCollection.cs
- HMACMD5.cs
- AtomicFile.cs
- ConnectivityStatus.cs
- MessageBodyDescription.cs
- FileInfo.cs
- XmlBindingWorker.cs
- TimeoutException.cs
- CodeThrowExceptionStatement.cs
- SystemIPGlobalProperties.cs
- RowBinding.cs
- ValueTypeFixupInfo.cs
- TreeViewImageGenerator.cs
- _ProxyRegBlob.cs
- SessionSwitchEventArgs.cs
- Int32Collection.cs
- SqlReferenceCollection.cs
- FixedTextSelectionProcessor.cs
- XmlEnumAttribute.cs
- VectorCollectionConverter.cs
- DeclarativeConditionsCollection.cs
- ProcessThreadCollection.cs
- ReflectPropertyDescriptor.cs
- ClientConfigurationSystem.cs
- FreeIndexList.cs
- ClientUrlResolverWrapper.cs
- DataColumn.cs
- XmlSchemaObjectCollection.cs
- Rotation3D.cs
- SecurityException.cs
- AlternateViewCollection.cs
- GlyphingCache.cs
- Util.cs
- InfiniteTimeSpanConverter.cs
- TextElement.cs
- TimeSpanSecondsOrInfiniteConverter.cs
- SQLMoney.cs
- CodeChecksumPragma.cs
- Clock.cs
- LazyLoadBehavior.cs
- HyperLinkColumn.cs
- DataFormats.cs
- SchemaTypeEmitter.cs
- DataObjectCopyingEventArgs.cs
- ProcessModule.cs
- UpdatableWrapper.cs
- SessionParameter.cs
- ReliableSessionBindingElementImporter.cs
- SchemaNamespaceManager.cs
- XmlSchemaImporter.cs
- FormatException.cs
- PtsCache.cs
- TrackBarDesigner.cs
- Bold.cs
- SystemDropShadowChrome.cs
- BitmapEffectInput.cs