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
- TdsParser.cs
- UniqueConstraint.cs
- ComponentCommands.cs
- TimeStampChecker.cs
- InternalsVisibleToAttribute.cs
- EmulateRecognizeCompletedEventArgs.cs
- ContainerVisual.cs
- ResourceReferenceExpression.cs
- DataGridViewCellStateChangedEventArgs.cs
- versioninfo.cs
- CopyAction.cs
- ToolboxComponentsCreatedEventArgs.cs
- FileChangesMonitor.cs
- CommonXSendMessage.cs
- LifetimeServices.cs
- ListViewItemMouseHoverEvent.cs
- StdValidatorsAndConverters.cs
- SamlAssertion.cs
- CodeAttachEventStatement.cs
- ProxyWebPartManager.cs
- DiscoveryEndpointElement.cs
- ColumnReorderedEventArgs.cs
- MouseEventArgs.cs
- ToolStripOverflow.cs
- NetworkAddressChange.cs
- MemoryRecordBuffer.cs
- SafeSecurityHandles.cs
- SchemaType.cs
- TargetInvocationException.cs
- DbConnectionPoolOptions.cs
- DirectionalLight.cs
- SamlSubject.cs
- PointCollection.cs
- SoapSchemaImporter.cs
- DataSourceCache.cs
- SoapFault.cs
- ValuePatternIdentifiers.cs
- UserControlDesigner.cs
- DataServiceExpressionVisitor.cs
- XmlWrappingReader.cs
- StdRegProviderWrapper.cs
- RoleManagerEventArgs.cs
- ObjectDataSourceDisposingEventArgs.cs
- AVElementHelper.cs
- SqlUnionizer.cs
- mongolianshape.cs
- TypePresenter.xaml.cs
- IdleTimeoutMonitor.cs
- WindowsBrush.cs
- GridItemCollection.cs
- OdbcEnvironment.cs
- EntitySetBaseCollection.cs
- SafePEFileHandle.cs
- ContextBase.cs
- ActivityPropertyReference.cs
- SponsorHelper.cs
- ClientBuildManagerCallback.cs
- CollectionViewProxy.cs
- ObjectIDGenerator.cs
- RTLAwareMessageBox.cs
- XmlCDATASection.cs
- QueryTaskGroupState.cs
- StorageConditionPropertyMapping.cs
- SchemaDeclBase.cs
- ExpandedWrapper.cs
- XmlSerializationWriter.cs
- ActivityTypeResolver.xaml.cs
- Rect3DConverter.cs
- BitmapEffect.cs
- ExpressionHelper.cs
- SQLBinaryStorage.cs
- OdbcReferenceCollection.cs
- ComboBoxRenderer.cs
- ContentPresenter.cs
- UriScheme.cs
- BaseCodePageEncoding.cs
- PrintPreviewDialog.cs
- BitmapEffectState.cs
- PerfCounters.cs
- BaseTemplateCodeDomTreeGenerator.cs
- CompModHelpers.cs
- ADMembershipUser.cs
- InheritedPropertyChangedEventArgs.cs
- Evidence.cs
- ScriptComponentDescriptor.cs
- DataColumnPropertyDescriptor.cs
- ExpressionBindingCollection.cs
- ViewBox.cs
- DomNameTable.cs
- ListControlDesigner.cs
- DataGridViewRowDividerDoubleClickEventArgs.cs
- PasswordBoxAutomationPeer.cs
- ErrorReporting.cs
- LinkClickEvent.cs
- SR.cs
- webclient.cs
- FixedDocumentPaginator.cs
- SearchForVirtualItemEventArgs.cs
- HTTPAPI_VERSION.cs
- HelpInfo.cs