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
- Utils.cs
- ButtonBaseAutomationPeer.cs
- TypeTypeConverter.cs
- LinqExpressionNormalizer.cs
- HtmlMobileTextWriter.cs
- ObjectDataSourceView.cs
- RegexRunner.cs
- PersonalizationStateInfo.cs
- BinHexEncoder.cs
- IisTraceWebEventProvider.cs
- AppModelKnownContentFactory.cs
- METAHEADER.cs
- MarkupCompilePass2.cs
- RelationshipEndCollection.cs
- HtmlInputSubmit.cs
- ToolStripStatusLabel.cs
- Ref.cs
- UserUseLicenseDictionaryLoader.cs
- FormatConvertedBitmap.cs
- SqlCommand.cs
- SmiRequestExecutor.cs
- DeclarativeCatalogPart.cs
- FilterableAttribute.cs
- glyphs.cs
- BaseTemplateCodeDomTreeGenerator.cs
- WCFServiceClientProxyGenerator.cs
- NumberFormatInfo.cs
- BinaryUtilClasses.cs
- WebEventCodes.cs
- Filter.cs
- Win32.cs
- MessageEventSubscriptionService.cs
- LocatorPartList.cs
- Translator.cs
- BooleanConverter.cs
- XmlSchemaAttributeGroup.cs
- ConfigurationValues.cs
- CodeMemberEvent.cs
- XPathNodePointer.cs
- LogWriteRestartAreaAsyncResult.cs
- BitmapScalingModeValidation.cs
- querybuilder.cs
- PerfService.cs
- ActiveXHelper.cs
- Maps.cs
- DynamicUpdateCommand.cs
- ProfileEventArgs.cs
- CodeAttributeArgument.cs
- JournalEntryListConverter.cs
- Exceptions.cs
- ExceptionRoutedEventArgs.cs
- NonParentingControl.cs
- BackgroundFormatInfo.cs
- DescendantOverDescendantQuery.cs
- AttributeExtensions.cs
- WaitHandle.cs
- PersonalizationDictionary.cs
- SendKeys.cs
- dataprotectionpermissionattribute.cs
- CalendarDataBindingHandler.cs
- DesignerVerbCollection.cs
- PathFigure.cs
- EdmRelationshipRoleAttribute.cs
- MonitorWrapper.cs
- GridViewRowPresenter.cs
- BamlLocalizer.cs
- SecurityCredentialsManager.cs
- ReadWriteSpinLock.cs
- CalloutQueueItem.cs
- Attributes.cs
- RegexMatchCollection.cs
- ServiceBehaviorAttribute.cs
- Delegate.cs
- FontStretch.cs
- TimelineClockCollection.cs
- AuthenticatedStream.cs
- XmlSchemaImporter.cs
- WebScriptClientGenerator.cs
- FlowDocumentView.cs
- ManifestResourceInfo.cs
- XmlUtilWriter.cs
- WebPartsPersonalizationAuthorization.cs
- RoleServiceManager.cs
- TreeNode.cs
- SystemFonts.cs
- RecordManager.cs
- OutOfMemoryException.cs
- CriticalFinalizerObject.cs
- RoleGroup.cs
- DisplayToken.cs
- XomlDesignerLoader.cs
- DoubleAnimationUsingKeyFrames.cs
- ObjectTypeMapping.cs
- SendKeys.cs
- XmlTextAttribute.cs
- EdgeModeValidation.cs
- SettingsPropertyIsReadOnlyException.cs
- ChannelListenerBase.cs
- HwndSourceKeyboardInputSite.cs
- DataQuery.cs