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
- TableLayoutStyle.cs
- CodePrimitiveExpression.cs
- DocumentPageTextView.cs
- PerformanceCounter.cs
- PolyLineSegment.cs
- MachinePropertyVariants.cs
- EditorZoneDesigner.cs
- EditorAttribute.cs
- TreeNodeCollection.cs
- Globals.cs
- ListCollectionView.cs
- WinFormsComponentEditor.cs
- Profiler.cs
- IItemProperties.cs
- LinkLabelLinkClickedEvent.cs
- OleDbReferenceCollection.cs
- DesignConnection.cs
- BindingWorker.cs
- ClipboardProcessor.cs
- AttachedPropertyBrowsableAttribute.cs
- Codec.cs
- StateManager.cs
- PanelStyle.cs
- ModifierKeysValueSerializer.cs
- PersonalizationProviderHelper.cs
- mansign.cs
- DriveInfo.cs
- OleDbConnectionInternal.cs
- TraceData.cs
- ClickablePoint.cs
- DataServiceBuildProvider.cs
- BuildTopDownAttribute.cs
- handlecollector.cs
- PanningMessageFilter.cs
- XmlParserContext.cs
- EventSourceCreationData.cs
- Font.cs
- RequiredFieldValidator.cs
- XmlText.cs
- GraphicsContainer.cs
- StartUpEventArgs.cs
- ImmComposition.cs
- StringInfo.cs
- AutomationEventArgs.cs
- SwitchAttribute.cs
- MaterializeFromAtom.cs
- ContainerSelectorActiveEvent.cs
- ObjectStateEntryDbDataRecord.cs
- Span.cs
- NumberSubstitution.cs
- EnumMember.cs
- Dump.cs
- X509CertificateRecipientClientCredential.cs
- ListMarkerSourceInfo.cs
- ErrorHandlerFaultInfo.cs
- XmlSignatureManifest.cs
- BinaryEditor.cs
- ServiceElement.cs
- SoapException.cs
- AtomEntry.cs
- Command.cs
- XmlSerializableServices.cs
- ReadOnlyDataSource.cs
- SqlReorderer.cs
- DataGridViewCellCollection.cs
- PeerTransportSecuritySettings.cs
- BamlReader.cs
- HostedImpersonationContext.cs
- ContentTextAutomationPeer.cs
- CellQuery.cs
- SrgsSubset.cs
- SqlInternalConnectionTds.cs
- DeclarationUpdate.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- SByteStorage.cs
- InvalidCommandTreeException.cs
- CqlLexerHelpers.cs
- EventItfInfo.cs
- SqlInternalConnection.cs
- webclient.cs
- PropertyValue.cs
- While.cs
- VScrollBar.cs
- XmlSchemaFacet.cs
- FactoryId.cs
- InteropAutomationProvider.cs
- HtmlInputCheckBox.cs
- ScriptRegistrationManager.cs
- DeleteBookmarkScope.cs
- ProviderConnectionPointCollection.cs
- SelectorItemAutomationPeer.cs
- ErrorTableItemStyle.cs
- PointConverter.cs
- ScriptingRoleServiceSection.cs
- GZipStream.cs
- DataGrid.cs
- ToolboxItemLoader.cs
- ControlCommandSet.cs
- EqualityComparer.cs
- Events.cs