Code:
/ 4.0 / 4.0 / 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. 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
- Vertex.cs
- EventWaitHandle.cs
- CounterCreationDataCollection.cs
- SortDescription.cs
- RegexWriter.cs
- SoapMessage.cs
- SRGSCompiler.cs
- MsmqReceiveHelper.cs
- NGCUIElementCollectionSerializerAsync.cs
- StructuralCache.cs
- SymLanguageVendor.cs
- SystemUnicastIPAddressInformation.cs
- PlainXmlDeserializer.cs
- ImageFormat.cs
- FrameworkPropertyMetadata.cs
- DataExpression.cs
- ToolStripContainer.cs
- Int64AnimationUsingKeyFrames.cs
- PublishLicense.cs
- WindowsScroll.cs
- CodeNamespaceImport.cs
- HighContrastHelper.cs
- AsyncContentLoadedEventArgs.cs
- ProxyGenerator.cs
- LazyTextWriterCreator.cs
- StreamWithDictionary.cs
- Rotation3DKeyFrameCollection.cs
- MimeMapping.cs
- CodeVariableReferenceExpression.cs
- CompiledELinqQueryState.cs
- XPathDocumentBuilder.cs
- FormatterServices.cs
- GradientStop.cs
- TransferMode.cs
- ClientSettings.cs
- ToolStripDropDownClosedEventArgs.cs
- COMException.cs
- QueryOperator.cs
- WebServiceHost.cs
- ResumeStoryboard.cs
- propertytag.cs
- ProcessHostMapPath.cs
- XmlSchemaInferenceException.cs
- NativeMethodsOther.cs
- DependentList.cs
- DataGridViewRowEventArgs.cs
- KeyInstance.cs
- CultureNotFoundException.cs
- RtfToXamlLexer.cs
- PageThemeBuildProvider.cs
- StringWriter.cs
- CacheDependency.cs
- dsa.cs
- PrimitiveType.cs
- CodeDelegateCreateExpression.cs
- DLinqColumnProvider.cs
- ViewStateException.cs
- MetadataException.cs
- IListConverters.cs
- SessionSwitchEventArgs.cs
- SiteMapNodeItemEventArgs.cs
- EntityClassGenerator.cs
- XmlNodeList.cs
- WebControlsSection.cs
- SiteMapNode.cs
- ParsedAttributeCollection.cs
- SatelliteContractVersionAttribute.cs
- XmlSchemaSubstitutionGroup.cs
- baseaxisquery.cs
- Executor.cs
- SplashScreenNativeMethods.cs
- ListView.cs
- Listbox.cs
- CaseDesigner.xaml.cs
- BrowsableAttribute.cs
- DbgUtil.cs
- WorkflowRuntimeSection.cs
- XmlSchemaSimpleTypeUnion.cs
- TimelineClockCollection.cs
- CryptoHandle.cs
- BeginEvent.cs
- DisplayMemberTemplateSelector.cs
- PropertyConverter.cs
- Misc.cs
- ContainerFilterService.cs
- Globals.cs
- StructuredProperty.cs
- ObjRef.cs
- SqlRecordBuffer.cs
- BuiltInPermissionSets.cs
- TemplateFactory.cs
- ScrollData.cs
- HwndSubclass.cs
- coordinatorscratchpad.cs
- VirtualPath.cs
- SqlServices.cs
- WrapPanel.cs
- UnsafeNativeMethods.cs
- CheckBoxField.cs
- Grant.cs