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
- OrderPreservingMergeHelper.cs
- X509CertificateInitiatorClientCredential.cs
- OrderPreservingPipeliningSpoolingTask.cs
- RequiredAttributeAttribute.cs
- ExceptionUtil.cs
- CreateUserWizard.cs
- brushes.cs
- CallbackDebugBehavior.cs
- RectangleGeometry.cs
- ImageSource.cs
- DataTableCollection.cs
- TileBrush.cs
- HttpModuleActionCollection.cs
- StateMachineWorkflow.cs
- MailAddress.cs
- HttpValueCollection.cs
- IntPtr.cs
- SchemaTableColumn.cs
- Annotation.cs
- LineGeometry.cs
- QuaternionAnimation.cs
- GridItemPattern.cs
- EqualityComparer.cs
- ValueType.cs
- _StreamFramer.cs
- AndAlso.cs
- DrawingDrawingContext.cs
- CachedTypeface.cs
- CopyOnWriteList.cs
- ModelTreeEnumerator.cs
- XmlUrlResolver.cs
- CollectionChangedEventManager.cs
- XmlDictionaryWriter.cs
- CheckBox.cs
- BatchWriter.cs
- TabletDevice.cs
- GeneralTransformGroup.cs
- WizardStepBase.cs
- COM2ExtendedTypeConverter.cs
- FindCriteriaCD1.cs
- MiniMapControl.xaml.cs
- TypeBuilder.cs
- XamlFigureLengthSerializer.cs
- Accessible.cs
- FileSystemInfo.cs
- ServiceProviders.cs
- HMACSHA1.cs
- FontInfo.cs
- DataGridAutoFormat.cs
- _HelperAsyncResults.cs
- DefaultBindingPropertyAttribute.cs
- SerializationStore.cs
- CodeArrayCreateExpression.cs
- StringReader.cs
- ReflectionUtil.cs
- LockCookie.cs
- _StreamFramer.cs
- PrtCap_Public_Simple.cs
- EntryWrittenEventArgs.cs
- PrinterResolution.cs
- UpdateManifestForBrowserApplication.cs
- GenericEnumerator.cs
- RepeatInfo.cs
- ArrangedElement.cs
- _ChunkParse.cs
- CollectionContainer.cs
- TabControlEvent.cs
- WCFModelStrings.Designer.cs
- PrintPreviewDialog.cs
- Errors.cs
- OleDbError.cs
- ByteAnimationBase.cs
- SqlReferenceCollection.cs
- UserPersonalizationStateInfo.cs
- LambdaCompiler.Logical.cs
- ConstantProjectedSlot.cs
- Label.cs
- StaticExtensionConverter.cs
- HttpDictionary.cs
- TrailingSpaceComparer.cs
- IgnorePropertiesAttribute.cs
- XmlILIndex.cs
- LoadItemsEventArgs.cs
- DBDataPermissionAttribute.cs
- RegexInterpreter.cs
- PtsHelper.cs
- TextTreePropertyUndoUnit.cs
- TextCharacters.cs
- AmbientValueAttribute.cs
- InfiniteTimeSpanConverter.cs
- ObjectListCommandsPage.cs
- SqlBulkCopyColumnMapping.cs
- AnchoredBlock.cs
- WebColorConverter.cs
- AppearanceEditorPart.cs
- GridViewRow.cs
- IntSecurity.cs
- DataTemplate.cs
- IODescriptionAttribute.cs
- OperatingSystem.cs