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
- FormView.cs
- Empty.cs
- PocoPropertyAccessorStrategy.cs
- LocalizationParserHooks.cs
- XPathScanner.cs
- XmlNode.cs
- Script.cs
- MailAddress.cs
- IndentedTextWriter.cs
- MenuItemStyleCollectionEditor.cs
- PropertyRecord.cs
- ColorMatrix.cs
- GraphicsState.cs
- NTAccount.cs
- ByteAnimationUsingKeyFrames.cs
- AttachedPropertiesService.cs
- Accessible.cs
- EntityDataSourceQueryBuilder.cs
- PlatformCulture.cs
- _SafeNetHandles.cs
- OracleRowUpdatingEventArgs.cs
- ProviderBase.cs
- SupportingTokenListenerFactory.cs
- LoadedEvent.cs
- SurrogateEncoder.cs
- PnrpPermission.cs
- ResourceAssociationType.cs
- SHA256Managed.cs
- UserControlCodeDomTreeGenerator.cs
- FilterQueryOptionExpression.cs
- CancelEventArgs.cs
- ToolStripTextBox.cs
- ConsumerConnectionPointCollection.cs
- OverflowException.cs
- Source.cs
- ConfigXmlWhitespace.cs
- MatrixTransform3D.cs
- ImageFormat.cs
- MemberAccessException.cs
- WebResourceAttribute.cs
- SoapTypeAttribute.cs
- PackageStore.cs
- TreeViewImageIndexConverter.cs
- TextElementEditingBehaviorAttribute.cs
- TempFiles.cs
- ToolStripSystemRenderer.cs
- HealthMonitoringSection.cs
- Grid.cs
- PropertyDescriptorComparer.cs
- EventLogEntryCollection.cs
- CollectionView.cs
- SqlProviderServices.cs
- PointConverter.cs
- InvokeFunc.cs
- Rect.cs
- XamlToRtfWriter.cs
- JavascriptCallbackMessageInspector.cs
- HtmlMeta.cs
- InstanceDescriptor.cs
- WebPartsPersonalization.cs
- PcmConverter.cs
- ThreadExceptionEvent.cs
- SqlMethodCallConverter.cs
- SignedXml.cs
- PackWebResponse.cs
- ConnectionInterfaceCollection.cs
- XamlParser.cs
- SortExpressionBuilder.cs
- HttpApplication.cs
- AllMembershipCondition.cs
- UniformGrid.cs
- MethodExpr.cs
- JobDuplex.cs
- Stackframe.cs
- ImpersonationContext.cs
- CryptoKeySecurity.cs
- RadialGradientBrush.cs
- XmlDataCollection.cs
- TrimSurroundingWhitespaceAttribute.cs
- UrlMappingCollection.cs
- _DisconnectOverlappedAsyncResult.cs
- XmlConvert.cs
- BamlResourceContent.cs
- SqlClientPermission.cs
- Operand.cs
- DocumentSchemaValidator.cs
- XslNumber.cs
- RotateTransform3D.cs
- SpeakInfo.cs
- DbProviderConfigurationHandler.cs
- WebPartDescriptionCollection.cs
- Cursor.cs
- InputProviderSite.cs
- DynamicDocumentPaginator.cs
- PersonalizationStateInfoCollection.cs
- XmlTextReaderImpl.cs
- AuditLevel.cs
- ListControl.cs
- ThreadSafeMessageFilterTable.cs
- InternalConfigConfigurationFactory.cs