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
- FacetValues.cs
- PipeStream.cs
- KeyedHashAlgorithm.cs
- CodeDomConfigurationHandler.cs
- FilterableAttribute.cs
- WebPartAddingEventArgs.cs
- PtsHelper.cs
- HostExecutionContextManager.cs
- SessionStateUtil.cs
- PropertyConverter.cs
- ValueTable.cs
- SqlRowUpdatingEvent.cs
- TrackBarRenderer.cs
- SafeReversePInvokeHandle.cs
- XmlElementList.cs
- ResponseBodyWriter.cs
- ByteAnimationBase.cs
- PriorityQueue.cs
- DataGridViewRowStateChangedEventArgs.cs
- Point3DKeyFrameCollection.cs
- metadatamappinghashervisitor.cs
- Crc32.cs
- PrintingPermission.cs
- SafeRightsManagementSessionHandle.cs
- FormatConvertedBitmap.cs
- BaseTemplateParser.cs
- PrePrepareMethodAttribute.cs
- OAVariantLib.cs
- ApplicationGesture.cs
- panel.cs
- _NetworkingPerfCounters.cs
- LineVisual.cs
- TextReader.cs
- QuadraticEase.cs
- WindowsToolbarItemAsMenuItem.cs
- InheritedPropertyDescriptor.cs
- Normalization.cs
- SystemIcmpV4Statistics.cs
- InArgumentConverter.cs
- Restrictions.cs
- SafeThreadHandle.cs
- TextElementEnumerator.cs
- CssTextWriter.cs
- RadioButtonDesigner.cs
- BitmapCodecInfo.cs
- ContainerTracking.cs
- HuffModule.cs
- AlternationConverter.cs
- Control.cs
- Context.cs
- CultureData.cs
- IOException.cs
- TrackingValidationObjectDictionary.cs
- AspNetSynchronizationContext.cs
- TypeKeyValue.cs
- FtpRequestCacheValidator.cs
- Point3D.cs
- TrackingStringDictionary.cs
- GenericTypeParameterConverter.cs
- ContractHandle.cs
- AliasedSlot.cs
- AdapterDictionary.cs
- Intellisense.cs
- RangeExpression.cs
- CodeAccessSecurityEngine.cs
- DataGridViewImageColumn.cs
- FontSource.cs
- InputBuffer.cs
- TreeNodeEventArgs.cs
- EditorBrowsableAttribute.cs
- DrawingDrawingContext.cs
- FixedTextSelectionProcessor.cs
- ConfigurationLocation.cs
- XmlTypeMapping.cs
- OleDbDataReader.cs
- Content.cs
- PolyQuadraticBezierSegment.cs
- SchemaImporterExtensionElementCollection.cs
- CompilerCollection.cs
- StylusPointPropertyUnit.cs
- TdsParameterSetter.cs
- BadImageFormatException.cs
- LayoutDump.cs
- XmlHierarchicalEnumerable.cs
- XmlCodeExporter.cs
- EditingCommands.cs
- PropertyValueUIItem.cs
- WebConfigurationHostFileChange.cs
- QilList.cs
- MatrixTransform3D.cs
- MimeParameterWriter.cs
- MetadataArtifactLoaderCompositeResource.cs
- ProtectedConfigurationSection.cs
- WeakHashtable.cs
- JournalEntryStack.cs
- CreateUserErrorEventArgs.cs
- FileRecordSequence.cs
- DataGridViewRowCollection.cs
- SamlNameIdentifierClaimResource.cs
- TextEmbeddedObject.cs