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
- DisposableCollectionWrapper.cs
- TraceListeners.cs
- DataRelation.cs
- Line.cs
- HttpPostProtocolReflector.cs
- ValueChangedEventManager.cs
- WebBrowserSiteBase.cs
- DCSafeHandle.cs
- SocketPermission.cs
- XmlDocumentFieldSchema.cs
- InputLanguageEventArgs.cs
- OutputCacheProfileCollection.cs
- ResourceManagerWrapper.cs
- AssemblyNameProxy.cs
- SqlWorkflowPersistenceService.cs
- CLSCompliantAttribute.cs
- assertwrapper.cs
- ToolStripContentPanelRenderEventArgs.cs
- DispatcherSynchronizationContext.cs
- UiaCoreProviderApi.cs
- EntityKey.cs
- MethodAccessException.cs
- HtmlSelect.cs
- PageAction.cs
- SyndicationElementExtension.cs
- SoapInteropTypes.cs
- HtmlSelect.cs
- ContainerFilterService.cs
- WebPartCollection.cs
- VarRefManager.cs
- DesignerToolboxInfo.cs
- ConfigurationConverterBase.cs
- SHA384.cs
- DrawingGroupDrawingContext.cs
- AmbientEnvironment.cs
- StickyNoteHelper.cs
- Path.cs
- TextElementEnumerator.cs
- DesignerTransaction.cs
- TableLayoutRowStyleCollection.cs
- GridViewSortEventArgs.cs
- IDispatchConstantAttribute.cs
- GroupItemAutomationPeer.cs
- PathFigureCollectionConverter.cs
- MetadataItemEmitter.cs
- log.cs
- SendMailErrorEventArgs.cs
- DialogWindow.cs
- DetailsViewDeleteEventArgs.cs
- KernelTypeValidation.cs
- VariableDesigner.xaml.cs
- JavaScriptObjectDeserializer.cs
- DataGridViewColumnTypeEditor.cs
- DecoderBestFitFallback.cs
- XPathNodeHelper.cs
- FamilyMapCollection.cs
- UpdatePanel.cs
- PageThemeCodeDomTreeGenerator.cs
- HostedElements.cs
- QueryExpr.cs
- HMACSHA256.cs
- XsltQilFactory.cs
- RuleSetDialog.cs
- EmptyEnumerator.cs
- OrderByQueryOptionExpression.cs
- ClientProxyGenerator.cs
- DesignerActionGlyph.cs
- LabelEditEvent.cs
- GetTokenRequest.cs
- PropertySegmentSerializationProvider.cs
- PageCatalogPart.cs
- DesignerToolboxInfo.cs
- ResXResourceWriter.cs
- Pointer.cs
- RectangleHotSpot.cs
- _LocalDataStore.cs
- StartUpEventArgs.cs
- FragmentQuery.cs
- XmlSerializationWriter.cs
- UnicodeEncoding.cs
- CommandEventArgs.cs
- SharedPerformanceCounter.cs
- OrderPreservingPipeliningSpoolingTask.cs
- IntegerValidator.cs
- BlurBitmapEffect.cs
- Error.cs
- UnsafeNativeMethods.cs
- CorePropertiesFilter.cs
- AVElementHelper.cs
- VariantWrapper.cs
- CachedPathData.cs
- IndentedWriter.cs
- AbsoluteQuery.cs
- ThumbButtonInfo.cs
- WebPartChrome.cs
- ChainedAsyncResult.cs
- DataListCommandEventArgs.cs
- CardSpaceSelector.cs
- EventLogPermissionEntry.cs
- OracleConnectionString.cs