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
- RTLAwareMessageBox.cs
- HtmlTableRowCollection.cs
- HttpWrapper.cs
- ExecutionEngineException.cs
- _CookieModule.cs
- MainMenu.cs
- ContainerFilterService.cs
- XpsFontSerializationService.cs
- EventManager.cs
- JsonByteArrayDataContract.cs
- TextFormatterImp.cs
- Registry.cs
- _SSPIWrapper.cs
- WhiteSpaceTrimStringConverter.cs
- DynamicFilterExpression.cs
- VBCodeProvider.cs
- HostedHttpRequestAsyncResult.cs
- CodeArrayCreateExpression.cs
- OdbcParameter.cs
- StylusLogic.cs
- safesecurityhelperavalon.cs
- PeerCollaboration.cs
- Int32Storage.cs
- RawMouseInputReport.cs
- Schema.cs
- ThrowHelper.cs
- HttpListenerRequest.cs
- DataListCommandEventArgs.cs
- ClockGroup.cs
- RootCodeDomSerializer.cs
- InfoCardSymmetricAlgorithm.cs
- MenuCommandService.cs
- DoubleAnimationUsingKeyFrames.cs
- ItemCheckedEvent.cs
- HyperLink.cs
- Sql8ConformanceChecker.cs
- ApplicationActivator.cs
- Menu.cs
- TypeViewSchema.cs
- StateItem.cs
- KeyValueSerializer.cs
- KnownBoxes.cs
- Collection.cs
- SiteMapNode.cs
- DocumentCollection.cs
- XmlDocumentViewSchema.cs
- WasAdminWrapper.cs
- ContextProperty.cs
- XPathParser.cs
- StrokeCollection2.cs
- IsolatedStorageFileStream.cs
- ExeConfigurationFileMap.cs
- LinkArea.cs
- SqlTypeSystemProvider.cs
- _FixedSizeReader.cs
- SecondaryIndexDefinition.cs
- TypePropertyEditor.cs
- AppSettingsExpressionBuilder.cs
- Method.cs
- TextHidden.cs
- GiveFeedbackEvent.cs
- FacetValueContainer.cs
- CompilerCollection.cs
- AlphabeticalEnumConverter.cs
- DocumentsTrace.cs
- ChannelServices.cs
- ItemsControl.cs
- ISAPIApplicationHost.cs
- BaseTreeIterator.cs
- BooleanFunctions.cs
- DataPagerFieldCollection.cs
- WorkflowInstance.cs
- WebPartEditorApplyVerb.cs
- COM2IDispatchConverter.cs
- RemoteCryptoRsaServiceProvider.cs
- LoginName.cs
- WebEventCodes.cs
- TreeViewImageIndexConverter.cs
- OutputCacheEntry.cs
- DynamicRouteExpression.cs
- FlowchartDesignerCommands.cs
- ExtendedPropertyInfo.cs
- Operator.cs
- WebPartAuthorizationEventArgs.cs
- KeyBinding.cs
- XmlDataDocument.cs
- Debugger.cs
- ZeroOpNode.cs
- FileRecordSequenceCompletedAsyncResult.cs
- WebBaseEventKeyComparer.cs
- EmbossBitmapEffect.cs
- CreateParams.cs
- DateTimeOffsetStorage.cs
- Token.cs
- AccessKeyManager.cs
- KnownTypesProvider.cs
- UtilityExtension.cs
- TimeoutException.cs
- SemaphoreSecurity.cs
- CreateUserErrorEventArgs.cs