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
- CompilationUnit.cs
- ExpressionEvaluator.cs
- MachinePropertyVariants.cs
- CharEnumerator.cs
- PermissionSetTriple.cs
- OperationPickerDialog.cs
- CatalogPartDesigner.cs
- IntPtr.cs
- CustomAttributeBuilder.cs
- TreeNodeBinding.cs
- TileBrush.cs
- RangeValidator.cs
- OrthographicCamera.cs
- WebEventTraceProvider.cs
- SynchronizedDispatch.cs
- SqlTransaction.cs
- GroupBox.cs
- Schema.cs
- SearchExpression.cs
- ContainerUIElement3D.cs
- MemoryMappedViewStream.cs
- ErasingStroke.cs
- SimpleWorkerRequest.cs
- MethodCallConverter.cs
- FullTextState.cs
- TextBoxAutoCompleteSourceConverter.cs
- HttpFileCollection.cs
- GroupJoinQueryOperator.cs
- WaitHandleCannotBeOpenedException.cs
- FixedPageProcessor.cs
- PropertyEmitter.cs
- PathSegmentCollection.cs
- ConfigurationValues.cs
- Root.cs
- LinqDataSourceValidationException.cs
- CqlParser.cs
- Vector3DKeyFrameCollection.cs
- HttpCookie.cs
- ClientProtocol.cs
- OdbcConnectionString.cs
- Socket.cs
- XPathItem.cs
- ReferenceService.cs
- RightsManagementEncryptedStream.cs
- ModuleBuilder.cs
- FreezableDefaultValueFactory.cs
- FormattedTextSymbols.cs
- Matrix3DConverter.cs
- SqlDataReader.cs
- RtfToken.cs
- WebPartCollection.cs
- TextServicesDisplayAttribute.cs
- DispatchWrapper.cs
- ErrorTolerantObjectWriter.cs
- UshortList2.cs
- FixedHighlight.cs
- QuaternionRotation3D.cs
- FixedSOMPageConstructor.cs
- XmlDataLoader.cs
- IdnMapping.cs
- BasicExpressionVisitor.cs
- LoginCancelEventArgs.cs
- ImageKeyConverter.cs
- NonBatchDirectoryCompiler.cs
- StrokeCollection.cs
- ExpandedWrapper.cs
- RandomNumberGenerator.cs
- HttpApplication.cs
- ZoneButton.cs
- XPathDocumentBuilder.cs
- XmlDataFileEditor.cs
- WebPartDeleteVerb.cs
- StringToken.cs
- MeasureItemEvent.cs
- ReadingWritingEntityEventArgs.cs
- RoutedUICommand.cs
- MessagePropertyVariants.cs
- ValidatingReaderNodeData.cs
- DispatcherProcessingDisabled.cs
- CodeMemberField.cs
- DesignerToolboxInfo.cs
- SessionIDManager.cs
- DataBoundControlAdapter.cs
- TimeZone.cs
- Margins.cs
- GeometryDrawing.cs
- XmlEntityReference.cs
- DiffuseMaterial.cs
- UrlAuthFailureHandler.cs
- SQLSingleStorage.cs
- TextRunCache.cs
- followingquery.cs
- ObjectHelper.cs
- TableColumnCollectionInternal.cs
- AccessDataSourceView.cs
- OleDbParameterCollection.cs
- SpecialTypeDataContract.cs
- RecordsAffectedEventArgs.cs
- ipaddressinformationcollection.cs
- XMLSyntaxException.cs