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
- RequestNavigateEventArgs.cs
- SmtpAuthenticationManager.cs
- DragCompletedEventArgs.cs
- BindingMAnagerBase.cs
- ValidatorCompatibilityHelper.cs
- UserPreferenceChangingEventArgs.cs
- CategoryNameCollection.cs
- DocumentXmlWriter.cs
- PrintPreviewDialog.cs
- ClientConfigurationHost.cs
- ObjectSecurity.cs
- EndpointDiscoveryMetadataCD1.cs
- XmlTextAttribute.cs
- FlowLayoutSettings.cs
- DoWhile.cs
- Parser.cs
- listitem.cs
- SecurityElement.cs
- ObjectSecurity.cs
- EventWaitHandle.cs
- WindowsBrush.cs
- Restrictions.cs
- SyndicationDeserializer.cs
- DataBindingHandlerAttribute.cs
- _LocalDataStore.cs
- GeometryGroup.cs
- GridViewCommandEventArgs.cs
- UTF32Encoding.cs
- DecoratedNameAttribute.cs
- BrowserTree.cs
- TypeBinaryExpression.cs
- TransformerConfigurationWizardBase.cs
- SrgsGrammar.cs
- RoleService.cs
- ImagingCache.cs
- RootDesignerSerializerAttribute.cs
- WorkerProcess.cs
- MouseEventArgs.cs
- Freezable.cs
- EntityModelSchemaGenerator.cs
- UnmanagedMemoryStream.cs
- cookiecontainer.cs
- BindingsCollection.cs
- ThumbButtonInfo.cs
- CultureTable.cs
- TableLayoutSettingsTypeConverter.cs
- Image.cs
- DateTimeAutomationPeer.cs
- MethodCallConverter.cs
- FillErrorEventArgs.cs
- HtmlControlPersistable.cs
- PageCache.cs
- ByteStack.cs
- _SslStream.cs
- LoadWorkflowCommand.cs
- SortQueryOperator.cs
- DLinqTableProvider.cs
- RotationValidation.cs
- QuotaThrottle.cs
- SecureEnvironment.cs
- PlainXmlWriter.cs
- TreeNodeCollection.cs
- ReadOnlyDataSourceView.cs
- SqlVisitor.cs
- TreeNodeCollection.cs
- PolicyStatement.cs
- OracleInternalConnection.cs
- GridViewRowPresenterBase.cs
- CodeGenerator.cs
- ReversePositionQuery.cs
- NumericExpr.cs
- CursorInteropHelper.cs
- OdbcEnvironmentHandle.cs
- DrawingImage.cs
- TransformPattern.cs
- ExpressionBinding.cs
- WebConfigurationFileMap.cs
- DrawingGroupDrawingContext.cs
- IsolatedStorageSecurityState.cs
- DataGridViewLayoutData.cs
- XmlReaderSettings.cs
- FilterException.cs
- Compilation.cs
- GroupBoxRenderer.cs
- ChildTable.cs
- XMLSchema.cs
- AutoGeneratedField.cs
- PropertyInformationCollection.cs
- WindowHideOrCloseTracker.cs
- MetadataArtifactLoader.cs
- DefaultBinder.cs
- CssStyleCollection.cs
- CompilerCollection.cs
- DescendentsWalkerBase.cs
- WebPartEditVerb.cs
- RegexWorker.cs
- RectangleConverter.cs
- FontUnit.cs
- Condition.cs
- DirtyTextRange.cs