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
- ProcessModuleCollection.cs
- TextWriter.cs
- MatrixIndependentAnimationStorage.cs
- OleDbDataAdapter.cs
- RadioButtonPopupAdapter.cs
- PrivacyNoticeBindingElement.cs
- FormsAuthenticationModule.cs
- CodeDelegateCreateExpression.cs
- UpDownEvent.cs
- TileBrush.cs
- SqlTransaction.cs
- PathTooLongException.cs
- PeerNameRecordCollection.cs
- SizeChangedEventArgs.cs
- GridViewUpdatedEventArgs.cs
- ByteKeyFrameCollection.cs
- DecodeHelper.cs
- FormatConvertedBitmap.cs
- ControlPager.cs
- __Filters.cs
- Asn1IntegerConverter.cs
- BindingMAnagerBase.cs
- HandleCollector.cs
- UnsafeNativeMethods.cs
- XmlExtensionFunction.cs
- SqlAliasesReferenced.cs
- XmlCharacterData.cs
- WindowsTitleBar.cs
- Size.cs
- invalidudtexception.cs
- EntityDataSourceSelectedEventArgs.cs
- ErrorBehavior.cs
- Tracking.cs
- WebPartConnectionsConnectVerb.cs
- DetailsViewInsertedEventArgs.cs
- AnonymousIdentificationModule.cs
- UnmanagedBitmapWrapper.cs
- UnSafeCharBuffer.cs
- AliasGenerator.cs
- CodeArgumentReferenceExpression.cs
- ImageAttributes.cs
- HexParser.cs
- OrderPreservingPipeliningMergeHelper.cs
- ParserExtension.cs
- JsonWriter.cs
- XsltFunctions.cs
- TCPClient.cs
- WindowsNonControl.cs
- SafeRightsManagementPubHandle.cs
- TypedTableHandler.cs
- Token.cs
- EntityStoreSchemaGenerator.cs
- ListViewItemSelectionChangedEvent.cs
- Drawing.cs
- SelectionRange.cs
- PolicyManager.cs
- MetadataSerializer.cs
- NestedContainer.cs
- SqlUDTStorage.cs
- BindingWorker.cs
- MappingModelBuildProvider.cs
- SettingsBindableAttribute.cs
- Pen.cs
- CollectionDataContract.cs
- PublisherMembershipCondition.cs
- OutOfMemoryException.cs
- IPAddressCollection.cs
- PropertyMap.cs
- JsonCollectionDataContract.cs
- Button.cs
- MultiSelectRootGridEntry.cs
- XmlNamespaceManager.cs
- ListView.cs
- filewebrequest.cs
- ExpressionVisitor.cs
- IMembershipProvider.cs
- ResourceDisplayNameAttribute.cs
- SortableBindingList.cs
- DirtyTextRange.cs
- StylusCaptureWithinProperty.cs
- TextSegment.cs
- StatusBarAutomationPeer.cs
- Soap.cs
- ProxyHwnd.cs
- Group.cs
- DataListDesigner.cs
- WsdlHelpGeneratorElement.cs
- ForeignConstraint.cs
- XmlReflectionImporter.cs
- DynamicILGenerator.cs
- Parallel.cs
- BaseCollection.cs
- DataGridViewControlCollection.cs
- TrackingStringDictionary.cs
- SessionState.cs
- AnimatedTypeHelpers.cs
- Point4D.cs
- XmlAnyAttributeAttribute.cs
- ToolboxComponentsCreatedEventArgs.cs
- CultureMapper.cs