Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WF / Activities / CodeExpressionRuleDeclaration.cs / 1305376 / CodeExpressionRuleDeclaration.cs
namespace System.Workflow.Activities { using System; using System.Collections; using System.Collections.Generic; using System.CodeDom; using System.ComponentModel; using System.ComponentModel.Design.Serialization; using System.Diagnostics; using System.Reflection; using System.Workflow.ComponentModel; using System.Workflow.Runtime; using System.Workflow.ComponentModel.Compiler; using System.Workflow.ComponentModel.Serialization; using System.Workflow.Runtime.DebugEngine; [ToolboxItem(false)] [ActivityValidator(typeof(CodeConditionValidator))] [SRDisplayName(SR.CodeConditionDisplayName)] public class CodeCondition : ActivityCondition { public static readonly DependencyProperty ConditionEvent = DependencyProperty.Register("Condition", typeof(EventHandler), typeof(CodeCondition)); [SRDescription(SR.ExpressionDescr)] [SRCategory(SR.Handlers)] [MergableProperty(false)] public event EventHandler Condition { add { base.AddHandler(ConditionEvent, value); } remove { base.RemoveHandler(ConditionEvent, value); } } #region Bind resolution Support protected override object GetBoundValue(ActivityBind bind, Type targetType) { if (bind == null) throw new ArgumentNullException("bind"); if (targetType == null) throw new ArgumentNullException("targetType"); object returnVal = bind; Activity activity = this.ParentDependencyObject as Activity; if (activity != null) returnVal = bind.GetRuntimeValue(activity, targetType); return returnVal; } #endregion public override bool Evaluate(Activity ownerActivity, IServiceProvider provider) { if (provider == null) throw new ArgumentNullException("provider"); ConditionalEventArgs eventArgs = new ConditionalEventArgs(); EventHandler [] eventHandlers = base.GetInvocationList >(CodeCondition.ConditionEvent); IWorkflowDebuggerService workflowDebuggerService = provider.GetService(typeof(IWorkflowDebuggerService)) as IWorkflowDebuggerService; if (eventHandlers != null) { foreach (EventHandler eventHandler in eventHandlers) { if (workflowDebuggerService != null) workflowDebuggerService.NotifyHandlerInvoking(eventHandler); eventHandler(ownerActivity, eventArgs); if (workflowDebuggerService != null) workflowDebuggerService.NotifyHandlerInvoked(); } } return eventArgs.Result; } private class CodeConditionValidator : ConditionValidator { public override ValidationErrorCollection Validate(ValidationManager manager, object obj) { ValidationErrorCollection errors = new ValidationErrorCollection(); errors.AddRange(base.Validate(manager, obj)); CodeCondition codeCondition = obj as CodeCondition; if (codeCondition != null) { if (codeCondition.GetInvocationList >(CodeCondition.ConditionEvent).Length == 0 && codeCondition.GetBinding(CodeCondition.ConditionEvent) == null) { Hashtable hashtable = codeCondition.GetValue(WorkflowMarkupSerializer.EventsProperty) as Hashtable; if (hashtable == null || hashtable["Condition"] == null) errors.Add(ValidationError.GetNotSetValidationError(GetFullPropertyName(manager) + ".Condition")); } } return errors; } } } } // 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
- FacetEnabledSchemaElement.cs
- InvalidContentTypeException.cs
- MetadataPropertyvalue.cs
- ContextBase.cs
- GlyphRunDrawing.cs
- PropertyValidationContext.cs
- SQLDateTimeStorage.cs
- DataGridViewDataConnection.cs
- AccessedThroughPropertyAttribute.cs
- DoubleAnimationBase.cs
- DataBoundControlHelper.cs
- SecurityKeyType.cs
- MenuItemStyleCollection.cs
- OleDbTransaction.cs
- ListControlBoundActionList.cs
- XmlnsPrefixAttribute.cs
- MDIControlStrip.cs
- FolderBrowserDialogDesigner.cs
- BinHexEncoder.cs
- KnownColorTable.cs
- SystemWebExtensionsSectionGroup.cs
- IisTraceWebEventProvider.cs
- QueryPageSettingsEventArgs.cs
- XmlTextEncoder.cs
- StateDesigner.cs
- XmlSchema.cs
- AuthorizationRuleCollection.cs
- ConnectionInterfaceCollection.cs
- CatalogZoneBase.cs
- ArrayList.cs
- _BufferOffsetSize.cs
- WebPartConnectionsCancelEventArgs.cs
- HtmlInputSubmit.cs
- FromReply.cs
- SystemResourceHost.cs
- DataObjectMethodAttribute.cs
- LambdaCompiler.Generated.cs
- DesignerSerializationOptionsAttribute.cs
- FrameworkContentElement.cs
- Rect.cs
- CompilerTypeWithParams.cs
- CursorConverter.cs
- SourceFileInfo.cs
- SqlNodeAnnotation.cs
- TreeNodeEventArgs.cs
- HostExecutionContextManager.cs
- XmlSchemas.cs
- DtdParser.cs
- BinaryParser.cs
- ActivityDesigner.cs
- SoundPlayer.cs
- WSSecurityOneDotOneReceiveSecurityHeader.cs
- ControllableStoryboardAction.cs
- SizeAnimationUsingKeyFrames.cs
- SchemaAttDef.cs
- PaintValueEventArgs.cs
- X509Chain.cs
- ExtendedPropertyDescriptor.cs
- EpmCustomContentDeSerializer.cs
- WindowHideOrCloseTracker.cs
- ReadOnlyPermissionSet.cs
- SpAudioStreamWrapper.cs
- StructuredTypeEmitter.cs
- Graph.cs
- StackBuilderSink.cs
- BitmapMetadata.cs
- FamilyMap.cs
- SqlCharStream.cs
- XmlHelper.cs
- DeobfuscatingStream.cs
- controlskin.cs
- EdmEntityTypeAttribute.cs
- HttpFileCollection.cs
- EdmMember.cs
- EditorZone.cs
- bindurihelper.cs
- PersonalizationStateQuery.cs
- _SafeNetHandles.cs
- FileLoadException.cs
- BitmapVisualManager.cs
- StringBuilder.cs
- FlowDocumentReader.cs
- ProfileService.cs
- ZeroOpNode.cs
- DefaultDiscoveryServiceExtension.cs
- InsufficientMemoryException.cs
- Logging.cs
- GlobalProxySelection.cs
- SwitchLevelAttribute.cs
- DesignBindingConverter.cs
- VectorKeyFrameCollection.cs
- FrameworkContextData.cs
- Point3D.cs
- GridViewColumnHeaderAutomationPeer.cs
- DataServiceStreamResponse.cs
- SafeMILHandleMemoryPressure.cs
- prefixendpointaddressmessagefiltertable.cs
- InternalRelationshipCollection.cs
- ConstrainedDataObject.cs
- ImageInfo.cs