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
- SafeLibraryHandle.cs
- Rectangle.cs
- X509ServiceCertificateAuthentication.cs
- UnsafeNativeMethods.cs
- ExceptionHelpers.cs
- SafeProcessHandle.cs
- ResourceManagerWrapper.cs
- ListBindableAttribute.cs
- XmlSignatureManifest.cs
- ApplyImportsAction.cs
- UnsafeNetInfoNativeMethods.cs
- WindowsTreeView.cs
- TypeResolvingOptions.cs
- GCHandleCookieTable.cs
- SafeTokenHandle.cs
- WmlCalendarAdapter.cs
- DataServiceBehavior.cs
- CharUnicodeInfo.cs
- BinaryUtilClasses.cs
- DoubleIndependentAnimationStorage.cs
- HelpKeywordAttribute.cs
- HostedHttpContext.cs
- ThreadSafeList.cs
- COM2Enum.cs
- XmlElement.cs
- EmissiveMaterial.cs
- UInt16.cs
- CompressStream.cs
- SplineKeyFrames.cs
- HttpHandlerActionCollection.cs
- SerializationSectionGroup.cs
- NativeActivityTransactionContext.cs
- DateTimeParse.cs
- HtmlElement.cs
- UserControlParser.cs
- DocumentPageViewAutomationPeer.cs
- TraversalRequest.cs
- TransformCollection.cs
- XmlStreamedByteStreamReader.cs
- _NegoStream.cs
- PenLineJoinValidation.cs
- NavigationProperty.cs
- DataBindingsDialog.cs
- PrintEvent.cs
- EntityEntry.cs
- KerberosRequestorSecurityToken.cs
- HostProtectionPermission.cs
- InstanceHandle.cs
- EventHandlerService.cs
- BinaryObjectInfo.cs
- BreadCrumbTextConverter.cs
- WebPartEditorCancelVerb.cs
- HMACSHA512.cs
- RotateTransform.cs
- BaseCodePageEncoding.cs
- SizeF.cs
- ControlCollection.cs
- FaultDesigner.cs
- UserUseLicenseDictionaryLoader.cs
- MTConfigUtil.cs
- UserNamePasswordValidator.cs
- Opcode.cs
- HtmlFormParameterWriter.cs
- RubberbandSelector.cs
- LinkLabel.cs
- SqlBuffer.cs
- DropDownButton.cs
- FormViewModeEventArgs.cs
- XmlNodeReader.cs
- WindowsAltTab.cs
- AsmxEndpointPickerExtension.cs
- XmlSchemaAttributeGroup.cs
- EventRoute.cs
- BuildManagerHost.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- RegexCapture.cs
- CorrelationService.cs
- ConsoleCancelEventArgs.cs
- FixedStringLookup.cs
- PropertyIdentifier.cs
- Journaling.cs
- BitmapEffect.cs
- SqlMethodCallConverter.cs
- DesignerHost.cs
- RequestCacheEntry.cs
- Application.cs
- ProtocolsConfigurationHandler.cs
- JoinGraph.cs
- SignatureTargetIdManager.cs
- StaticSiteMapProvider.cs
- SetStoryboardSpeedRatio.cs
- FaultHandlingFilter.cs
- XsdBuilder.cs
- UnauthorizedAccessException.cs
- HttpRequestCacheValidator.cs
- ManipulationCompletedEventArgs.cs
- XmlComment.cs
- BufferedReadStream.cs
- SqlGenericUtil.cs
- FunctionDetailsReader.cs