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
- CompressEmulationStream.cs
- ListItemsPage.cs
- WebPartEventArgs.cs
- MessageHeader.cs
- MouseButton.cs
- SystemIPGlobalProperties.cs
- PointLightBase.cs
- CommandLibraryHelper.cs
- EntryWrittenEventArgs.cs
- COM2IDispatchConverter.cs
- UseLicense.cs
- CompensatableTransactionScopeActivity.cs
- XmlSchemaAnnotated.cs
- InlineObject.cs
- ScrollPatternIdentifiers.cs
- RequestCacheValidator.cs
- WmpBitmapEncoder.cs
- UpdateTranslator.cs
- ObjectDataSourceChooseTypePanel.cs
- DataListItemEventArgs.cs
- ArcSegment.cs
- PropertyGrid.cs
- ServerIdentity.cs
- ProcessStartInfo.cs
- MessageFormatterConverter.cs
- DispatchWrapper.cs
- BinaryMethodMessage.cs
- CommandEventArgs.cs
- FlowSwitchDesigner.xaml.cs
- CatalogZoneBase.cs
- FileSecurity.cs
- WorkflowViewElement.cs
- EventProvider.cs
- CharAnimationBase.cs
- SpecialFolderEnumConverter.cs
- DBDataPermission.cs
- DropDownList.cs
- IssuedTokenParametersEndpointAddressElement.cs
- HttpClientCertificate.cs
- FormsIdentity.cs
- DefaultDiscoveryService.cs
- counter.cs
- TrustManagerPromptUI.cs
- CompiledQuery.cs
- AutomationPropertyInfo.cs
- Rotation3DAnimation.cs
- ElementProxy.cs
- HighlightComponent.cs
- Helper.cs
- FilterInvalidBodyAccessException.cs
- ErrorTableItemStyle.cs
- HttpContextWrapper.cs
- HyperLinkDesigner.cs
- InkCanvasSelectionAdorner.cs
- PersistNameAttribute.cs
- UInt32.cs
- DropSource.cs
- contentDescriptor.cs
- _AcceptOverlappedAsyncResult.cs
- UnsafeNativeMethods.cs
- ScaleTransform.cs
- GridViewCellAutomationPeer.cs
- GenerateTemporaryTargetAssembly.cs
- WebBrowser.cs
- TextEndOfSegment.cs
- XmlDownloadManager.cs
- ContentPlaceHolder.cs
- WindowsSysHeader.cs
- LockCookie.cs
- Ref.cs
- xamlnodes.cs
- AuthenticationServiceManager.cs
- ChangeConflicts.cs
- InputLanguageEventArgs.cs
- XmlHierarchicalEnumerable.cs
- BitmapEffectGeneralTransform.cs
- StringValidatorAttribute.cs
- MSAAEventDispatcher.cs
- ScrollBarAutomationPeer.cs
- QueryInterceptorAttribute.cs
- ClientScriptItemCollection.cs
- SystemColorTracker.cs
- GeneralTransform3DTo2DTo3D.cs
- FixedSOMLineRanges.cs
- FontWeights.cs
- BufferedGraphicsManager.cs
- LayoutTable.cs
- Parser.cs
- MetadataArtifactLoaderCompositeFile.cs
- PreparingEnlistment.cs
- IdentifierCreationService.cs
- PreservationFileWriter.cs
- PeerPresenceInfo.cs
- Solver.cs
- PositiveTimeSpanValidatorAttribute.cs
- _RequestLifetimeSetter.cs
- AccessDataSource.cs
- CDSCollectionETWBCLProvider.cs
- ListViewItemSelectionChangedEvent.cs
- basenumberconverter.cs