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
- OracleColumn.cs
- MetabaseServerConfig.cs
- SafeLocalMemHandle.cs
- PartialCachingControl.cs
- SqlClientWrapperSmiStream.cs
- WpfWebRequestHelper.cs
- ConfigurationValue.cs
- ColorMatrix.cs
- EtwTrackingBehavior.cs
- PeerObject.cs
- FontWeights.cs
- _HeaderInfoTable.cs
- BindMarkupExtensionSerializer.cs
- Stack.cs
- Timer.cs
- PropertyGridEditorPart.cs
- FixedBufferAttribute.cs
- PriorityQueue.cs
- ValidationPropertyAttribute.cs
- ColumnMapCopier.cs
- PersonalizationState.cs
- EntityDataSourceViewSchema.cs
- PriorityQueue.cs
- OleDbDataAdapter.cs
- LogicalExpr.cs
- FileIOPermission.cs
- HandlerMappingMemo.cs
- FixedDocumentSequencePaginator.cs
- SocketException.cs
- mansign.cs
- WindowsScrollBarBits.cs
- ELinqQueryState.cs
- ViewGenResults.cs
- TextDecorationCollection.cs
- ProxyGenerationError.cs
- UpdatePanelTriggerCollection.cs
- DbFunctionCommandTree.cs
- InfocardClientCredentials.cs
- PriorityRange.cs
- BindingList.cs
- HeaderElement.cs
- ScriptHandlerFactory.cs
- BrowserCapabilitiesCompiler.cs
- RedistVersionInfo.cs
- ActivationServices.cs
- CopyOfAction.cs
- ControlBindingsCollection.cs
- LineGeometry.cs
- LayoutTable.cs
- Thread.cs
- Selector.cs
- BlurBitmapEffect.cs
- TimerElapsedEvenArgs.cs
- Label.cs
- XPathDocumentNavigator.cs
- TimerElapsedEvenArgs.cs
- StrokeNodeData.cs
- SafeNativeMethods.cs
- SqlClientWrapperSmiStreamChars.cs
- ExtensionMethods.cs
- CompoundFileStorageReference.cs
- EntityDataSourceQueryBuilder.cs
- TabletDeviceInfo.cs
- SqlClientMetaDataCollectionNames.cs
- DataBindingCollection.cs
- ZipFileInfoCollection.cs
- RolePrincipal.cs
- TextReader.cs
- XpsFontSubsetter.cs
- TraceXPathNavigator.cs
- RadioButtonPopupAdapter.cs
- ServiceReference.cs
- EntityKeyElement.cs
- ProcessHostServerConfig.cs
- COAUTHIDENTITY.cs
- QuaternionRotation3D.cs
- StrongNameUtility.cs
- ThrowHelper.cs
- View.cs
- mansign.cs
- SmiContext.cs
- Stroke.cs
- HttpCookie.cs
- ChooseAction.cs
- DebugInfoGenerator.cs
- RuleProcessor.cs
- Sentence.cs
- EventItfInfo.cs
- UnsafeNativeMethods.cs
- ISCIIEncoding.cs
- VideoDrawing.cs
- NavigationPropertyEmitter.cs
- _HeaderInfo.cs
- ExtenderProvidedPropertyAttribute.cs
- VariableQuery.cs
- MasterPageBuildProvider.cs
- cookieexception.cs
- IdentityHolder.cs
- TreeNodeBindingCollection.cs
- UriExt.cs