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
- Single.cs
- DomainUpDown.cs
- FixedFlowMap.cs
- BeginStoryboard.cs
- TimeEnumHelper.cs
- TypedLocationWrapper.cs
- Adorner.cs
- EventLogPermission.cs
- ValidationErrorInfo.cs
- UserControl.cs
- Select.cs
- DefaultHttpHandler.cs
- ExpressionBinding.cs
- CorrelationRequestContext.cs
- AddInActivator.cs
- _NestedSingleAsyncResult.cs
- HtmlObjectListAdapter.cs
- FormViewUpdatedEventArgs.cs
- SerTrace.cs
- Vector.cs
- RouteUrlExpressionBuilder.cs
- LinqToSqlWrapper.cs
- SQLDoubleStorage.cs
- InfoCardListRequest.cs
- ToolStripMenuItemCodeDomSerializer.cs
- ResolvedKeyFrameEntry.cs
- AudioLevelUpdatedEventArgs.cs
- DataSourceControlBuilder.cs
- EncoderReplacementFallback.cs
- IsolatedStorageException.cs
- Operand.cs
- FontCacheUtil.cs
- FixedSchema.cs
- EmptyQuery.cs
- DisplayMemberTemplateSelector.cs
- CodeTypeDeclarationCollection.cs
- Drawing.cs
- ThemeInfoAttribute.cs
- ADConnectionHelper.cs
- _LazyAsyncResult.cs
- dbdatarecord.cs
- GeneralTransformCollection.cs
- RSAOAEPKeyExchangeFormatter.cs
- SimplePropertyEntry.cs
- LoadMessageLogger.cs
- ToolStripTextBox.cs
- FixedSOMTableCell.cs
- SoapAttributes.cs
- XmlWriter.cs
- CSharpCodeProvider.cs
- SuppressMessageAttribute.cs
- FileUpload.cs
- ListControl.cs
- HiddenFieldPageStatePersister.cs
- _NativeSSPI.cs
- ComplexBindingPropertiesAttribute.cs
- XPathSelectionIterator.cs
- FigureHelper.cs
- DataView.cs
- ComponentManagerBroker.cs
- DBConnectionString.cs
- MimeTypeMapper.cs
- MatchSingleFxEngineOpcode.cs
- BitmapEffectDrawing.cs
- EntityDataSourceViewSchema.cs
- PlainXmlSerializer.cs
- LocatorGroup.cs
- AsyncPostBackErrorEventArgs.cs
- Message.cs
- ReadOnlyDataSourceView.cs
- TypeConverterAttribute.cs
- _NetRes.cs
- LocalizedNameDescriptionPair.cs
- XmlUTF8TextWriter.cs
- DecimalSumAggregationOperator.cs
- ipaddressinformationcollection.cs
- EventArgs.cs
- SpotLight.cs
- ContainerUIElement3D.cs
- HttpSysSettings.cs
- ProcessInfo.cs
- ScriptReference.cs
- UIElementParagraph.cs
- WebPartDescription.cs
- XmlNodeChangedEventArgs.cs
- DataPagerFieldCollection.cs
- SQLString.cs
- PolyLineSegment.cs
- DynamicResourceExtension.cs
- WorkerRequest.cs
- SrgsToken.cs
- WindowsGrip.cs
- DrawingServices.cs
- ProviderCommandInfoUtils.cs
- XmlBaseWriter.cs
- SqlUserDefinedAggregateAttribute.cs
- ProjectionPruner.cs
- DesignerForm.cs
- CompiledXpathExpr.cs
- TraceContext.cs