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
- QilSortKey.cs
- SqlMethods.cs
- Merger.cs
- SqlFileStream.cs
- WebPartMenuStyle.cs
- ByteAnimation.cs
- ASCIIEncoding.cs
- CodeConditionStatement.cs
- DependencyObjectPropertyDescriptor.cs
- mediapermission.cs
- DesignerView.xaml.cs
- HttpFileCollectionBase.cs
- HttpException.cs
- _DisconnectOverlappedAsyncResult.cs
- FreezableOperations.cs
- FixedSOMContainer.cs
- _FtpControlStream.cs
- XmlSchemaCompilationSettings.cs
- ResourcePart.cs
- DataTableNewRowEvent.cs
- NamespaceExpr.cs
- ItemContainerGenerator.cs
- MainMenu.cs
- CommandHelper.cs
- AddIn.cs
- RuntimeConfigurationRecord.cs
- XPathParser.cs
- ControlAdapter.cs
- SiteMapSection.cs
- ToolStripPanelRenderEventArgs.cs
- FormsAuthenticationCredentials.cs
- ReachUIElementCollectionSerializer.cs
- PartialCachingAttribute.cs
- Cursors.cs
- ShaderEffect.cs
- ElementMarkupObject.cs
- METAHEADER.cs
- Highlights.cs
- LayoutTable.cs
- Equal.cs
- DecimalAnimationUsingKeyFrames.cs
- PictureBox.cs
- HierarchicalDataBoundControlAdapter.cs
- DataGridViewTopRowAccessibleObject.cs
- StrongNameMembershipCondition.cs
- RotateTransform3D.cs
- SignedInfo.cs
- ButtonStandardAdapter.cs
- SoapHeaderAttribute.cs
- IncrementalReadDecoders.cs
- ServiceNameElement.cs
- TabItem.cs
- Compiler.cs
- ObjectItemCollectionAssemblyCacheEntry.cs
- WindowsSysHeader.cs
- PeerCollaboration.cs
- CatalogPartChrome.cs
- base64Transforms.cs
- EditorPartCollection.cs
- ConfigurationValues.cs
- ForEachDesigner.xaml.cs
- SecondaryViewProvider.cs
- SmiSettersStream.cs
- FamilyMap.cs
- Set.cs
- FastEncoderWindow.cs
- Tile.cs
- QueueProcessor.cs
- FieldAccessException.cs
- SolidColorBrush.cs
- XmlCharCheckingReader.cs
- RMEnrollmentPage1.cs
- MetadataItemCollectionFactory.cs
- TreeView.cs
- X509Utils.cs
- DigitalSignatureProvider.cs
- Selection.cs
- FormViewDeletedEventArgs.cs
- FontStretchConverter.cs
- SqlBooleanizer.cs
- Metadata.cs
- SkinBuilder.cs
- _SingleItemRequestCache.cs
- AsyncResult.cs
- _ProxyRegBlob.cs
- CustomExpression.cs
- TextDpi.cs
- RuntimeCompatibilityAttribute.cs
- DependencyObjectPropertyDescriptor.cs
- CatalogPartDesigner.cs
- IIS7WorkerRequest.cs
- GridItem.cs
- CharStorage.cs
- SafeReadContext.cs
- HtmlButton.cs
- AssemblySettingAttributes.cs
- WebPartsPersonalizationAuthorization.cs
- ContentTextAutomationPeer.cs
- EntityDataSourceWizardForm.cs
- XmlWriter.cs