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
- ChannelParameterCollection.cs
- AnchoredBlock.cs
- Point3DConverter.cs
- PropertyInformationCollection.cs
- DLinqColumnProvider.cs
- ProjectionAnalyzer.cs
- RegistryKey.cs
- CalendarAutomationPeer.cs
- TextChangedEventArgs.cs
- CopyNamespacesAction.cs
- SqlBuffer.cs
- TextAdaptor.cs
- ping.cs
- CoTaskMemHandle.cs
- RequestCache.cs
- Walker.cs
- BamlMapTable.cs
- HitTestDrawingContextWalker.cs
- FrugalList.cs
- InternalTypeHelper.cs
- PropertyTabChangedEvent.cs
- OperationInfoBase.cs
- QilPatternVisitor.cs
- FSWPathEditor.cs
- EmbeddedMailObject.cs
- GraphicsState.cs
- Activator.cs
- FullTextState.cs
- FixedDocumentPaginator.cs
- XmlIlGenerator.cs
- ToolBarButton.cs
- ReferencedAssemblyResolver.cs
- DesignerMetadata.cs
- RijndaelCryptoServiceProvider.cs
- WebConfigurationHost.cs
- DeploymentSection.cs
- SelectionProcessor.cs
- QueryOperationResponseOfT.cs
- StateDesignerConnector.cs
- RoutedPropertyChangedEventArgs.cs
- Single.cs
- GlyphingCache.cs
- MatrixCamera.cs
- SByte.cs
- TransactionProtocol.cs
- BatchWriter.cs
- EdmFunction.cs
- MimeReflector.cs
- ToolStripContentPanelRenderEventArgs.cs
- CodeParameterDeclarationExpression.cs
- XmlHierarchicalDataSourceView.cs
- InheritanceUI.cs
- WebDisplayNameAttribute.cs
- AssemblyBuilderData.cs
- SearchForVirtualItemEventArgs.cs
- XmlSchemaAnyAttribute.cs
- IsolatedStorageFilePermission.cs
- HtmlTernaryTree.cs
- DynamicActivityProperty.cs
- CodeParameterDeclarationExpression.cs
- StateDesigner.CommentLayoutGlyph.cs
- ResourceType.cs
- XamlFilter.cs
- SerTrace.cs
- WindowsFormsHost.cs
- CombinedGeometry.cs
- AspCompat.cs
- WebHttpDispatchOperationSelector.cs
- WithStatement.cs
- ToolStripPanelCell.cs
- AsymmetricSignatureFormatter.cs
- TextSelectionHighlightLayer.cs
- ListBindingHelper.cs
- Parsers.cs
- AxHost.cs
- GeneratedCodeAttribute.cs
- OleCmdHelper.cs
- MediaScriptCommandRoutedEventArgs.cs
- WebPartCancelEventArgs.cs
- RegisteredScript.cs
- OutputCacheModule.cs
- RankException.cs
- streamingZipPartStream.cs
- NetworkInformationException.cs
- BuildProvidersCompiler.cs
- ProfilePropertyMetadata.cs
- ActivityCodeDomSerializationManager.cs
- FontStretch.cs
- Variant.cs
- infer.cs
- ServiceParser.cs
- BitmapDownload.cs
- BamlLocalizableResourceKey.cs
- Substitution.cs
- BatchParser.cs
- Unit.cs
- NetSectionGroup.cs
- MDIClient.cs
- ToolStripItemEventArgs.cs
- Figure.cs