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
- ViewStateException.cs
- OleDbFactory.cs
- SystemResourceKey.cs
- ToolStripItemClickedEventArgs.cs
- XMLDiffLoader.cs
- Vector3dCollection.cs
- DataTableReader.cs
- ConsumerConnectionPointCollection.cs
- Keywords.cs
- COM2PropertyPageUITypeConverter.cs
- ReadOnlyAttribute.cs
- ListBase.cs
- PenLineCapValidation.cs
- DesignerSerializationVisibilityAttribute.cs
- WorkflowRuntime.cs
- DesignerActionVerbItem.cs
- HttpRequestCacheValidator.cs
- NominalTypeEliminator.cs
- Point3DValueSerializer.cs
- SqlTypeSystemProvider.cs
- SelfIssuedAuthRSAPKCS1SignatureFormatter.cs
- Message.cs
- SrgsGrammarCompiler.cs
- CompilerState.cs
- Message.cs
- DocumentGridPage.cs
- StateMachineAction.cs
- DataGridViewCellPaintingEventArgs.cs
- RawMouseInputReport.cs
- PointAnimation.cs
- PropertyCondition.cs
- WorkItem.cs
- SpecialNameAttribute.cs
- PageParser.cs
- UnicastIPAddressInformationCollection.cs
- CustomError.cs
- ResourceSet.cs
- ContractUtils.cs
- SystemTcpStatistics.cs
- COM2ICategorizePropertiesHandler.cs
- ButtonPopupAdapter.cs
- ColumnTypeConverter.cs
- RelationshipWrapper.cs
- WindowsToolbarAsMenu.cs
- AnimationClock.cs
- PageSetupDialog.cs
- ListItemCollection.cs
- RIPEMD160Managed.cs
- WmpBitmapEncoder.cs
- HostedTransportConfigurationManager.cs
- TextContainer.cs
- ApplicationServiceHelper.cs
- UriSection.cs
- PageAsyncTask.cs
- VerticalAlignConverter.cs
- AmbiguousMatchException.cs
- ReaderWriterLockSlim.cs
- CompletionProxy.cs
- hresults.cs
- BevelBitmapEffect.cs
- SwitchAttribute.cs
- UniqueEventHelper.cs
- BaseDataList.cs
- Missing.cs
- TextSerializer.cs
- TriState.cs
- Utils.cs
- ButtonBase.cs
- ConditionalAttribute.cs
- AbsoluteQuery.cs
- CompositeTypefaceMetrics.cs
- MachineSettingsSection.cs
- GridView.cs
- ObjectSerializerFactory.cs
- DiscoveryService.cs
- StaticFileHandler.cs
- LoadWorkflowByKeyAsyncResult.cs
- LinkGrep.cs
- ControlParameter.cs
- DataControlLinkButton.cs
- Bidi.cs
- AppDomainShutdownMonitor.cs
- InvalidProgramException.cs
- _ContextAwareResult.cs
- TemplateBindingExpressionConverter.cs
- FileLevelControlBuilderAttribute.cs
- SmtpCommands.cs
- ProcessThreadDesigner.cs
- CodeGen.cs
- RoleGroup.cs
- DynamicRenderer.cs
- StatusBarDrawItemEvent.cs
- FileStream.cs
- QilXmlWriter.cs
- BaseAddressPrefixFilterElement.cs
- SurrogateEncoder.cs
- IntranetCredentialPolicy.cs
- BlurEffect.cs
- FixUp.cs
- SurrogateDataContract.cs