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
- BindToObject.cs
- CapabilitiesRule.cs
- CompatibleComparer.cs
- ConfigXmlSignificantWhitespace.cs
- ContextMarshalException.cs
- SocketPermission.cs
- TransportListener.cs
- SettingsPropertyCollection.cs
- ClientUrlResolverWrapper.cs
- LocalsItemDescription.cs
- LineVisual.cs
- OpenTypeLayout.cs
- BamlResourceSerializer.cs
- StringUtil.cs
- ToolboxBitmapAttribute.cs
- ConvertEvent.cs
- SafeBitVector32.cs
- OracleConnectionString.cs
- ProcessHostMapPath.cs
- WebPartConnectionsConfigureVerb.cs
- PrtCap_Public_Simple.cs
- SafeNativeMethods.cs
- PropertyTab.cs
- SoapMessage.cs
- ToolboxBitmapAttribute.cs
- HttpListenerResponse.cs
- ApplicationSecurityManager.cs
- X509SecurityTokenProvider.cs
- Activity.cs
- ServiceOperationListItem.cs
- DataGridViewCellFormattingEventArgs.cs
- QueueProcessor.cs
- ScriptBehaviorDescriptor.cs
- SafeEventLogWriteHandle.cs
- ColorConverter.cs
- GroupBoxAutomationPeer.cs
- SimpleType.cs
- GeneralTransformCollection.cs
- ToolStripSettings.cs
- TextCompositionManager.cs
- Hyperlink.cs
- XmlNodeReader.cs
- DataSourceCacheDurationConverter.cs
- PixelFormat.cs
- Module.cs
- IRCollection.cs
- PieceDirectory.cs
- BlurBitmapEffect.cs
- XmlAtomicValue.cs
- MinMaxParagraphWidth.cs
- SocketInformation.cs
- XmlProcessingInstruction.cs
- DoWorkEventArgs.cs
- IEnumerable.cs
- OptimalTextSource.cs
- WebBrowsableAttribute.cs
- ConnectionAcceptor.cs
- DataGridViewCellPaintingEventArgs.cs
- SspiNegotiationTokenAuthenticatorState.cs
- DataGridViewRowCancelEventArgs.cs
- TdsParserHelperClasses.cs
- HtmlInputCheckBox.cs
- FixedDSBuilder.cs
- XmlSchemaObjectTable.cs
- Empty.cs
- SafeMILHandleMemoryPressure.cs
- TextHintingModeValidation.cs
- DynamicFilterExpression.cs
- AttachedPropertyBrowsableWhenAttributePresentAttribute.cs
- DynamicEndpoint.cs
- Transform.cs
- ObsoleteAttribute.cs
- MailFileEditor.cs
- DbTransaction.cs
- AsymmetricSignatureDeformatter.cs
- NotifyCollectionChangedEventArgs.cs
- PtsCache.cs
- ServicesUtilities.cs
- ThumbButtonInfo.cs
- RefreshPropertiesAttribute.cs
- AnonymousIdentificationSection.cs
- PrintDialogDesigner.cs
- XomlSerializationHelpers.cs
- PrivilegeNotHeldException.cs
- BitmapEditor.cs
- Int16KeyFrameCollection.cs
- XmlDocumentType.cs
- HandleExceptionArgs.cs
- TabRenderer.cs
- DocumentXmlWriter.cs
- BitmapEffectDrawingContent.cs
- XmlSchemaSimpleType.cs
- LeafCellTreeNode.cs
- ActivityInstanceReference.cs
- ListViewSelectEventArgs.cs
- UnsafeNativeMethodsCLR.cs
- _ConnectOverlappedAsyncResult.cs
- RegexInterpreter.cs
- NameSpaceExtractor.cs
- WorkflowServiceOperationListItem.cs