Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WF / Activities / ConditionalBranch.cs / 1305376 / ConditionalBranch.cs
namespace System.Workflow.Activities { #region Imports using System; using System.Text; using System.Reflection; using System.Collections; using System.CodeDom; using System.Collections.Generic; using System.ComponentModel; using System.ComponentModel.Design; using System.Drawing; using System.Workflow.ComponentModel; using System.Workflow.ComponentModel.Design; using System.Workflow.ComponentModel.Compiler; using System.Workflow.Activities.Common; #endregion [Designer(typeof(IfElseBranchDesigner), typeof(IDesigner))] [ToolboxItem(false)] [ActivityValidator(typeof(IfElseBranchValidator))] [ToolboxBitmap(typeof(IfElseBranchActivity), "Resources.DecisionBranch.bmp")] [SRCategory(SR.Standard)] public sealed class IfElseBranchActivity: SequenceActivity { public IfElseBranchActivity() { } public IfElseBranchActivity(string name) : base(name) { } //metadata properties go here public static readonly DependencyProperty ConditionProperty = DependencyProperty.Register("Condition", typeof(ActivityCondition), typeof(IfElseBranchActivity), new PropertyMetadata(DependencyPropertyOptions.Metadata)); [SRCategory(SR.Conditions)] [SRDescription(SR.ConditionDescr)] [RefreshProperties(RefreshProperties.Repaint)] [DefaultValue(null)] public ActivityCondition Condition { get { return base.GetValue(ConditionProperty) as ActivityCondition; } set { base.SetValue(ConditionProperty, value); } } } internal sealed class IfElseBranchValidator : CompositeActivityValidator { public override ValidationErrorCollection Validate(ValidationManager manager, object obj) { ValidationErrorCollection validationErrors = base.Validate(manager, obj); IfElseBranchActivity ifElseBranch = obj as IfElseBranchActivity; if (ifElseBranch == null) throw new ArgumentException(SR.GetString(SR.Error_UnexpectedArgumentType, typeof(IfElseBranchActivity).FullName), "obj"); // parent must be conditional IfElseActivity ifElse = ifElseBranch.Parent as IfElseActivity; if(ifElse == null) validationErrors.Add(new ValidationError(SR.GetString(SR.Error_ConditionalBranchParentNotConditional), ErrorNumbers.Error_ConditionalBranchParentNotConditional)); bool isLastBranch = (ifElse != null && ifElse.EnabledActivities.Count > 1 && (ifElse.EnabledActivities[ifElse.EnabledActivities.Count - 1] == ifElseBranch)); if (!isLastBranch || ifElseBranch.Condition != null) { if (ifElseBranch.Condition == null) validationErrors.Add(ValidationError.GetNotSetValidationError("Condition")); } return validationErrors; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. namespace System.Workflow.Activities { #region Imports using System; using System.Text; using System.Reflection; using System.Collections; using System.CodeDom; using System.Collections.Generic; using System.ComponentModel; using System.ComponentModel.Design; using System.Drawing; using System.Workflow.ComponentModel; using System.Workflow.ComponentModel.Design; using System.Workflow.ComponentModel.Compiler; using System.Workflow.Activities.Common; #endregion [Designer(typeof(IfElseBranchDesigner), typeof(IDesigner))] [ToolboxItem(false)] [ActivityValidator(typeof(IfElseBranchValidator))] [ToolboxBitmap(typeof(IfElseBranchActivity), "Resources.DecisionBranch.bmp")] [SRCategory(SR.Standard)] public sealed class IfElseBranchActivity: SequenceActivity { public IfElseBranchActivity() { } public IfElseBranchActivity(string name) : base(name) { } //metadata properties go here public static readonly DependencyProperty ConditionProperty = DependencyProperty.Register("Condition", typeof(ActivityCondition), typeof(IfElseBranchActivity), new PropertyMetadata(DependencyPropertyOptions.Metadata)); [SRCategory(SR.Conditions)] [SRDescription(SR.ConditionDescr)] [RefreshProperties(RefreshProperties.Repaint)] [DefaultValue(null)] public ActivityCondition Condition { get { return base.GetValue(ConditionProperty) as ActivityCondition; } set { base.SetValue(ConditionProperty, value); } } } internal sealed class IfElseBranchValidator : CompositeActivityValidator { public override ValidationErrorCollection Validate(ValidationManager manager, object obj) { ValidationErrorCollection validationErrors = base.Validate(manager, obj); IfElseBranchActivity ifElseBranch = obj as IfElseBranchActivity; if (ifElseBranch == null) throw new ArgumentException(SR.GetString(SR.Error_UnexpectedArgumentType, typeof(IfElseBranchActivity).FullName), "obj"); // parent must be conditional IfElseActivity ifElse = ifElseBranch.Parent as IfElseActivity; if(ifElse == null) validationErrors.Add(new ValidationError(SR.GetString(SR.Error_ConditionalBranchParentNotConditional), ErrorNumbers.Error_ConditionalBranchParentNotConditional)); bool isLastBranch = (ifElse != null && ifElse.EnabledActivities.Count > 1 && (ifElse.EnabledActivities[ifElse.EnabledActivities.Count - 1] == ifElseBranch)); if (!isLastBranch || ifElseBranch.Condition != null) { if (ifElseBranch.Condition == null) validationErrors.Add(ValidationError.GetNotSetValidationError("Condition")); } return validationErrors; } } } // 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
- XmlElementAttributes.cs
- OperandQuery.cs
- WindowsStreamSecurityUpgradeProvider.cs
- DataListItemEventArgs.cs
- ObjectSpanRewriter.cs
- TimelineGroup.cs
- OdbcFactory.cs
- DataGridViewIntLinkedList.cs
- HtmlControlPersistable.cs
- BoolExpressionVisitors.cs
- EventRoute.cs
- HMACMD5.cs
- QEncodedStream.cs
- XmlElementCollection.cs
- MenuItemCollection.cs
- MenuCommand.cs
- ResourceBinder.cs
- DirectionalLight.cs
- SplitterEvent.cs
- AssemblyCacheEntry.cs
- MenuBindingsEditor.cs
- CompilerWrapper.cs
- FontSource.cs
- NativeMethodsCLR.cs
- AssemblyBuilderData.cs
- ThreadInterruptedException.cs
- ManagedIStream.cs
- DataGridViewColumnCollection.cs
- RepeatInfo.cs
- Int16AnimationUsingKeyFrames.cs
- QuaternionAnimation.cs
- DataGridTemplateColumn.cs
- XmlCountingReader.cs
- CompositeDataBoundControl.cs
- DetailsViewDeletedEventArgs.cs
- TypedTableBaseExtensions.cs
- QilGeneratorEnv.cs
- Byte.cs
- HashCodeCombiner.cs
- ColorConvertedBitmap.cs
- OleCmdHelper.cs
- FileFormatException.cs
- RegexNode.cs
- DbCommandTree.cs
- HttpVersion.cs
- HoistedLocals.cs
- ExecutedRoutedEventArgs.cs
- UniqueEventHelper.cs
- SelectionGlyph.cs
- Executor.cs
- Scene3D.cs
- StringBuilder.cs
- EntityParameter.cs
- Point3D.cs
- PreloadedPackages.cs
- linebase.cs
- HtmlTableRow.cs
- sqlser.cs
- Zone.cs
- EventLogEntryCollection.cs
- BitmapEffectInput.cs
- LocatorGroup.cs
- PieceNameHelper.cs
- MailHeaderInfo.cs
- ComplexPropertyEntry.cs
- ConsumerConnectionPoint.cs
- LoginUtil.cs
- DbParameterCollectionHelper.cs
- MULTI_QI.cs
- Vector3DAnimationUsingKeyFrames.cs
- UpdatePanelTrigger.cs
- ConfigurationPermission.cs
- PointLightBase.cs
- tibetanshape.cs
- InkCanvasInnerCanvas.cs
- CodeNamespaceCollection.cs
- FocusManager.cs
- AddressingProperty.cs
- EntityModelBuildProvider.cs
- XmlBinaryReader.cs
- DetailsViewDesigner.cs
- PropertyItemInternal.cs
- RtfControls.cs
- BuildProviderUtils.cs
- AssemblyBuilderData.cs
- cookiecontainer.cs
- ColumnMapVisitor.cs
- EventKeyword.cs
- TagPrefixCollection.cs
- TypeListConverter.cs
- EncoderParameters.cs
- Int32RectConverter.cs
- CompositionAdorner.cs
- EntityStoreSchemaGenerator.cs
- QilLiteral.cs
- PropertyEntry.cs
- ContentTextAutomationPeer.cs
- IndexedString.cs
- UpdateTracker.cs
- XmlTypeMapping.cs