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
- UpdateProgress.cs
- LinqDataSourceContextEventArgs.cs
- NamedObject.cs
- ComponentChangingEvent.cs
- Stylesheet.cs
- ResourceKey.cs
- ToolStripPanelRow.cs
- ObjectParameterCollection.cs
- __ComObject.cs
- SerializationFieldInfo.cs
- SqlMultiplexer.cs
- RegexRunnerFactory.cs
- ConnectionOrientedTransportChannelFactory.cs
- GacUtil.cs
- PropertyConverter.cs
- UdpContractFilterBehavior.cs
- KeySplineConverter.cs
- MetricEntry.cs
- FormViewInsertEventArgs.cs
- control.ime.cs
- DrawingState.cs
- BaseCollection.cs
- SmiRecordBuffer.cs
- RankException.cs
- ResourcesChangeInfo.cs
- WithParamAction.cs
- ScopelessEnumAttribute.cs
- HttpCachePolicyElement.cs
- ProtocolElementCollection.cs
- PathFigureCollectionConverter.cs
- Aggregates.cs
- Convert.cs
- PassportPrincipal.cs
- MarkupProperty.cs
- GrammarBuilderBase.cs
- BooleanProjectedSlot.cs
- UmAlQuraCalendar.cs
- CheckBox.cs
- HtmlAnchor.cs
- StyleSheetDesigner.cs
- WebPartMenuStyle.cs
- DataBoundControl.cs
- _NTAuthentication.cs
- CommaDelimitedStringAttributeCollectionConverter.cs
- shaperfactory.cs
- PublisherIdentityPermission.cs
- RepeatEnumerable.cs
- SimpleParser.cs
- SimpleLine.cs
- localization.cs
- LinqDataSourceContextEventArgs.cs
- GetLastErrorDetailsRequest.cs
- FontResourceCache.cs
- ResumeStoryboard.cs
- RelatedCurrencyManager.cs
- DomNameTable.cs
- Binding.cs
- SchemaMapping.cs
- FrameSecurityDescriptor.cs
- WebPartVerbsEventArgs.cs
- _UriSyntax.cs
- FieldTemplateFactory.cs
- MediaPlayer.cs
- ApplicationServiceManager.cs
- HtmlTableCellCollection.cs
- JavascriptCallbackMessageInspector.cs
- TrustManagerPromptUI.cs
- EmptyEnumerator.cs
- Size3DValueSerializer.cs
- DoubleStorage.cs
- WebPartEditorApplyVerb.cs
- PermissionSet.cs
- UIElementHelper.cs
- EntityDataSourceContextCreatedEventArgs.cs
- SelectionProcessor.cs
- DrawingCollection.cs
- OleServicesContext.cs
- UIAgentCrashedException.cs
- HtmlToClrEventProxy.cs
- CustomWebEventKey.cs
- MatrixTransform.cs
- PseudoWebRequest.cs
- EntityDataSourceQueryBuilder.cs
- DoubleAnimationBase.cs
- WebBrowserDesigner.cs
- EditCommandColumn.cs
- PropertyValue.cs
- TreeNodeConverter.cs
- WebPartDeleteVerb.cs
- SelectionProviderWrapper.cs
- Form.cs
- StateMachineWorkflowDesigner.cs
- DataGridHeaderBorder.cs
- EncryptedData.cs
- XmlSchemaImport.cs
- QilInvokeLateBound.cs
- ParameterModifier.cs
- LogWriteRestartAreaState.cs
- XmlSchema.cs
- ErrorEventArgs.cs