Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WF / Common / AuthoringOM / Behaviors / Compensation.cs / 1305376 / Compensation.cs
namespace System.Workflow.ComponentModel { using System; using System.Drawing; using System.ComponentModel; using System.Collections; using System.ComponentModel.Design; using System.Workflow.ComponentModel.Design; using System.Workflow.ComponentModel.Compiler; [ToolboxItem(false)] [Designer(typeof(CompensationHandlerActivityDesigner), typeof(IDesigner))] [ToolboxBitmap(typeof(CompensationHandlerActivity), "Resources.Compensation.png")] [ActivityValidator(typeof(CompensationValidator))] [AlternateFlowActivityAttribute] [SRCategory(SR.Standard)] public sealed class CompensationHandlerActivity : CompositeActivity, IActivityEventListener{ public CompensationHandlerActivity() { } public CompensationHandlerActivity(string name) : base(name) { } protected internal override void Initialize(IServiceProvider provider) { if (this.Parent == null) throw new InvalidOperationException(SR.GetString(SR.Error_MustHaveParent)); base.Initialize(provider); } protected internal override ActivityExecutionStatus Execute(ActivityExecutionContext executionContext) { return SequenceHelper.Execute(this, executionContext); } protected internal override ActivityExecutionStatus Cancel(ActivityExecutionContext executionContext) { return SequenceHelper.Cancel(this, executionContext); } void IActivityEventListener .OnEvent(Object sender, ActivityExecutionStatusChangedEventArgs e) { SequenceHelper.OnEvent(this, sender, e); } protected internal override void OnActivityChangeRemove(ActivityExecutionContext executionContext, Activity removedActivity) { SequenceHelper.OnActivityChangeRemove(this, executionContext, removedActivity); } protected internal override void OnWorkflowChangesCompleted(ActivityExecutionContext executionContext) { SequenceHelper.OnWorkflowChangesCompleted(this, executionContext); } } internal sealed class CompensationValidator : CompositeActivityValidator { public override ValidationErrorCollection Validate(ValidationManager manager, object obj) { ValidationErrorCollection validationErrors = base.Validate(manager, obj); CompensationHandlerActivity compensation = obj as CompensationHandlerActivity; if (compensation == null) throw new ArgumentException(SR.GetString(SR.Error_UnexpectedArgumentType, typeof(CompensationHandlerActivity).FullName), "obj"); // check parent must be compensatable if (!(compensation.Parent is ICompensatableActivity)) validationErrors.Add(new ValidationError(SR.GetString(SR.Error_ParentDoesNotSupportCompensation), ErrorNumbers.Error_FaultHandlerActivityParentNotFaultHandlersActivity)); if (compensation.EnabledActivities.Count == 0) validationErrors.Add(new ValidationError(SR.GetString(SR.Warning_EmptyBehaviourActivity, typeof(CompensationHandlerActivity).FullName, compensation.QualifiedName), ErrorNumbers.Warning_EmptyBehaviourActivity, true)); // compensation handlers can not contain fault handlers, compensation handler and cancellation handler else if (((ISupportAlternateFlow)compensation).AlternateFlowActivities.Count > 0) validationErrors.Add(new ValidationError(SR.GetString(SR.Error_ModelingConstructsCanNotContainModelingConstructs), ErrorNumbers.Error_ModelingConstructsCanNotContainModelingConstructs)); return validationErrors; } } } // 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
- CachingHintValidation.cs
- MessagingDescriptionAttribute.cs
- BooleanStorage.cs
- WebPartHeaderCloseVerb.cs
- MetadataSection.cs
- XmlSchemaSearchPattern.cs
- SplayTreeNode.cs
- XPathException.cs
- XPathDescendantIterator.cs
- EdmToObjectNamespaceMap.cs
- ErrorView.xaml.cs
- ComponentEditorForm.cs
- SplitterEvent.cs
- DiscoveryClientBindingElement.cs
- PlainXmlDeserializer.cs
- EnterpriseServicesHelper.cs
- _FtpDataStream.cs
- SerializerDescriptor.cs
- invalidudtexception.cs
- AnnotationAdorner.cs
- UIElement3DAutomationPeer.cs
- ClientData.cs
- TemplateKeyConverter.cs
- ISessionStateStore.cs
- PrePrepareMethodAttribute.cs
- WebContext.cs
- DesignerActionGlyph.cs
- SpotLight.cs
- ParentUndoUnit.cs
- HashAlgorithm.cs
- SelectingProviderEventArgs.cs
- AlignmentYValidation.cs
- DataContractFormatAttribute.cs
- FolderLevelBuildProviderAppliesToAttribute.cs
- AngleUtil.cs
- GridSplitter.cs
- ExportOptions.cs
- ContainerFilterService.cs
- TemplateBindingExpression.cs
- GenericAuthenticationEventArgs.cs
- DefaultBinder.cs
- PointKeyFrameCollection.cs
- DataGridViewIntLinkedList.cs
- StrokeCollectionConverter.cs
- httpstaticobjectscollection.cs
- DataViewSetting.cs
- TemplateInstanceAttribute.cs
- WebPartPersonalization.cs
- FormsAuthentication.cs
- IndicFontClient.cs
- ScrollContentPresenter.cs
- TraceFilter.cs
- Stream.cs
- DocumentSequence.cs
- DoubleStorage.cs
- DesignerActionTextItem.cs
- ProfileParameter.cs
- MediaPlayer.cs
- Normalization.cs
- Proxy.cs
- DataServiceResponse.cs
- Int32Rect.cs
- HandlerBase.cs
- SqlLiftWhereClauses.cs
- ObjectDataSourceStatusEventArgs.cs
- HighlightComponent.cs
- ExtenderProvidedPropertyAttribute.cs
- StdValidatorsAndConverters.cs
- HostedHttpContext.cs
- BindingsCollection.cs
- ApplicationServiceHelper.cs
- MultipleViewProviderWrapper.cs
- WebConfigurationFileMap.cs
- CheckBoxRenderer.cs
- DocumentViewerBaseAutomationPeer.cs
- PagerSettings.cs
- TextAdaptor.cs
- DataReceivedEventArgs.cs
- InstalledFontCollection.cs
- PackageStore.cs
- LabelLiteral.cs
- NamedObject.cs
- ProcessModelInfo.cs
- DbConnectionInternal.cs
- BulletChrome.cs
- WebBrowserHelper.cs
- DataControlFieldCell.cs
- MetadataItemCollectionFactory.cs
- StorageEndPropertyMapping.cs
- TaiwanLunisolarCalendar.cs
- DynamicResourceExtensionConverter.cs
- ClientType.cs
- EndGetFileNameFromUserRequest.cs
- MarkupCompilePass2.cs
- PathSegment.cs
- DoubleLinkList.cs
- ServiceDurableInstance.cs
- ToolStripStatusLabel.cs
- ByteStreamGeometryContext.cs
- SoapElementAttribute.cs