Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WF / Common / AuthoringOM / Compiler / Validation / CompositeActivityValidator.cs / 1305376 / CompositeActivityValidator.cs
namespace System.Workflow.ComponentModel.Compiler { using System; using System.Workflow.ComponentModel.Design; #region Class CompositeActivityValidator public class CompositeActivityValidator : ActivityValidator { public override ValidationErrorCollection Validate(ValidationManager manager, object obj) { CompositeActivity compositeActivity = obj as CompositeActivity; if (compositeActivity == null) throw new ArgumentException(SR.GetString(SR.Error_UnexpectedArgumentType, typeof(CompositeActivity).FullName), "obj"); if (Helpers.IsActivityLocked(compositeActivity)) return new ValidationErrorCollection(); ValidationErrorCollection validationErrors = base.Validate(manager, obj); // check if more than one cancellation handler or compensation or fault handlers are specified int cancelHandlerCount = 0; int exceptionHandlersCount = 0; int compensationHandlerCount = 0; foreach (Activity activity in ((ISupportAlternateFlow)compositeActivity).AlternateFlowActivities) { cancelHandlerCount += (activity is CancellationHandlerActivity) ? 1 : 0; exceptionHandlersCount += (activity is FaultHandlersActivity) ? 1 : 0; compensationHandlerCount += (activity is CompensationHandlerActivity) ? 1 : 0; } // check cancellation handlers if (cancelHandlerCount > 1) validationErrors.Add(new ValidationError(SR.GetString(SR.Error_MoreThanOneCancelHandler, compositeActivity.GetType().Name), ErrorNumbers.Error_ScopeMoreThanOneEventHandlersDecl)); // check exception handlers if (exceptionHandlersCount > 1) validationErrors.Add(new ValidationError(SR.GetString(SR.Error_MoreThanOneFaultHandlersActivityDecl, compositeActivity.GetType().Name), ErrorNumbers.Error_ScopeMoreThanOneFaultHandlersActivityDecl)); // check compensation handlers if (compensationHandlerCount > 1) validationErrors.Add(new ValidationError(SR.GetString(SR.Error_MoreThanOneCompensationDecl, compositeActivity.GetType().Name), ErrorNumbers.Error_ScopeMoreThanOneCompensationDecl)); if (manager.ValidateChildActivities) { foreach (Activity childActivity in Helpers.GetAllEnabledActivities(compositeActivity)) validationErrors.AddRange(ValidationHelpers.ValidateActivity(manager, childActivity)); } return validationErrors; } public override ValidationError ValidateActivityChange(Activity activity, ActivityChangeAction action) { if (activity == null) throw new ArgumentNullException("activity"); if (action == null) throw new ArgumentNullException("action"); if (activity.ExecutionStatus != ActivityExecutionStatus.Initialized && activity.ExecutionStatus != ActivityExecutionStatus.Executing && activity.ExecutionStatus != ActivityExecutionStatus.Closed) { return new ValidationError(SR.GetString(SR.Error_DynamicActivity, activity.QualifiedName, Enum.GetName(typeof(ActivityExecutionStatus), activity.ExecutionStatus)), ErrorNumbers.Error_DynamicActivity); } return null; } } #endregion } // 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
- MutexSecurity.cs
- Globals.cs
- GridViewUpdateEventArgs.cs
- TraceLevelStore.cs
- AsynchronousChannelMergeEnumerator.cs
- FastPropertyAccessor.cs
- RightsManagementUser.cs
- ConnectionConsumerAttribute.cs
- BamlLocalizerErrorNotifyEventArgs.cs
- ParallelForEach.cs
- SQLGuidStorage.cs
- coordinator.cs
- NamedPipeProcessProtocolHandler.cs
- DataServiceQueryProvider.cs
- EndPoint.cs
- MetadataSerializer.cs
- CustomError.cs
- ReceiveMessageAndVerifySecurityAsyncResultBase.cs
- GeneralTransform3DGroup.cs
- ItemList.cs
- CriticalFinalizerObject.cs
- InvalidFilterCriteriaException.cs
- Label.cs
- BaseTransportHeaders.cs
- Evidence.cs
- NativeMethodsCLR.cs
- ParseHttpDate.cs
- RegionData.cs
- ToolStrip.cs
- SqlProfileProvider.cs
- XPathBinder.cs
- HtmlLabelAdapter.cs
- SqlMethods.cs
- Size.cs
- PingReply.cs
- ProfileBuildProvider.cs
- CodeVariableReferenceExpression.cs
- JournalEntryListConverter.cs
- SchemaTableOptionalColumn.cs
- RemotingConfiguration.cs
- Int16AnimationUsingKeyFrames.cs
- EventWaitHandleSecurity.cs
- WebPartTransformer.cs
- SeverityFilter.cs
- ConfigXmlSignificantWhitespace.cs
- Endpoint.cs
- EntityConnection.cs
- _ConnectOverlappedAsyncResult.cs
- Hash.cs
- ConnectionPoolManager.cs
- IdentifierCollection.cs
- TypeExtensionSerializer.cs
- DataObject.cs
- DrawingAttributesDefaultValueFactory.cs
- _Events.cs
- DataGridViewTextBoxColumn.cs
- DataGridViewCellParsingEventArgs.cs
- BitConverter.cs
- PaperSource.cs
- ParserExtension.cs
- JsonDeserializer.cs
- Accessors.cs
- TableTextElementCollectionInternal.cs
- PopOutPanel.cs
- ValidationException.cs
- XmlSchemaDocumentation.cs
- ToolStripDropDownMenu.cs
- TypeUnloadedException.cs
- UIElement.cs
- Boolean.cs
- PlaceHolder.cs
- AssemblyInfo.cs
- HiddenField.cs
- PermissionAttributes.cs
- TextInfo.cs
- WebPartEventArgs.cs
- WindowsPrincipal.cs
- Attributes.cs
- ComponentResourceKeyConverter.cs
- HashMembershipCondition.cs
- ValueProviderWrapper.cs
- PtsHelper.cs
- ObjectNotFoundException.cs
- DynamicResourceExtension.cs
- AsyncStreamReader.cs
- CodeVariableReferenceExpression.cs
- GroupBoxRenderer.cs
- TabPanel.cs
- OutArgument.cs
- SQLResource.cs
- LinkArea.cs
- PeerIPHelper.cs
- EventRoute.cs
- Metadata.cs
- OdbcTransaction.cs
- Metadata.cs
- SymLanguageVendor.cs
- DesignerActionItemCollection.cs
- FrameworkPropertyMetadata.cs
- ToolStripManager.cs