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
- SemanticKeyElement.cs
- TemplateBaseAction.cs
- TableRow.cs
- ErrorWebPart.cs
- DbDataRecord.cs
- WindowsTooltip.cs
- BinaryMethodMessage.cs
- ConfigXmlWhitespace.cs
- MILUtilities.cs
- KeyConstraint.cs
- Attributes.cs
- PersistencePipeline.cs
- SqlParameterizer.cs
- TimelineGroup.cs
- FixedDocumentSequencePaginator.cs
- Application.cs
- AddInSegmentDirectoryNotFoundException.cs
- ActiveXHelper.cs
- EventlogProvider.cs
- XmlSchemaAttribute.cs
- HttpProtocolReflector.cs
- TabPanel.cs
- IInstanceTable.cs
- TextBoxRenderer.cs
- VisualTarget.cs
- RequestChannel.cs
- XmlElementList.cs
- SafeNativeMethods.cs
- SiteMapPath.cs
- ExpandCollapseProviderWrapper.cs
- HtmlUtf8RawTextWriter.cs
- ComponentCommands.cs
- WebCategoryAttribute.cs
- DrawingContextDrawingContextWalker.cs
- ElementHostPropertyMap.cs
- _Win32.cs
- WindowsFont.cs
- Msec.cs
- ParsedAttributeCollection.cs
- OverlappedAsyncResult.cs
- SqlFunctionAttribute.cs
- XmlRawWriter.cs
- SqlConnectionPoolGroupProviderInfo.cs
- SqlDataSourceCommandEventArgs.cs
- WSIdentityFaultException.cs
- PropertyManager.cs
- AuthenticatedStream.cs
- SocketException.cs
- Util.cs
- XsdCachingReader.cs
- WebProxyScriptElement.cs
- TableItemStyle.cs
- clipboard.cs
- NavigationWindow.cs
- PassportAuthentication.cs
- AttributeSetAction.cs
- BamlWriter.cs
- GeometryDrawing.cs
- MachineKeySection.cs
- ApplicationTrust.cs
- WeakReference.cs
- ImageMetadata.cs
- SimpleWorkerRequest.cs
- EventManager.cs
- Roles.cs
- CheckedListBox.cs
- FunctionGenerator.cs
- WebSysDescriptionAttribute.cs
- WindowsBrush.cs
- CanonicalFontFamilyReference.cs
- InvalidPipelineStoreException.cs
- XPathException.cs
- RectConverter.cs
- XhtmlMobileTextWriter.cs
- VisualStyleTypesAndProperties.cs
- HttpHandlerActionCollection.cs
- InstanceKeyNotReadyException.cs
- ConnectionStringsExpressionBuilder.cs
- PerformanceCounterPermission.cs
- ActivityAction.cs
- Soap12FormatExtensions.cs
- HttpStaticObjectsCollectionWrapper.cs
- HtmlElement.cs
- GeneralTransform2DTo3DTo2D.cs
- IsolatedStorage.cs
- HtmlCommandAdapter.cs
- HttpUnhandledOperationInvoker.cs
- MarginsConverter.cs
- ButtonPopupAdapter.cs
- RegexParser.cs
- UrlMappingsModule.cs
- entitydatasourceentitysetnameconverter.cs
- Visual3D.cs
- ReadOnlyCollectionBase.cs
- ReadOnlyTernaryTree.cs
- PolyLineSegment.cs
- SocketInformation.cs
- HttpRequest.cs
- PointAnimationUsingKeyFrames.cs
- ConfigurationLocation.cs