Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.Activities / System / Activities / Statements / InternalConfirm.cs / 1305376 / InternalConfirm.cs
//---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- namespace System.Activities.Statements { using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Runtime; sealed class InternalConfirm : NativeActivity { public InternalConfirm() : base() { } public InArgumentTarget { get; set; } protected override bool CanInduceIdle { get { return true; } } protected override void CacheMetadata(NativeActivityMetadata metadata) { RuntimeArgument targetArgument = new RuntimeArgument("Target", typeof(CompensationToken), ArgumentDirection.In); metadata.Bind(this.Target, targetArgument); metadata.SetArgumentsCollection(new Collection { targetArgument }); } protected override void Execute(NativeActivityContext context) { CompensationExtension compensationExtension = context.GetExtension (); Fx.Assert(compensationExtension != null, "CompensationExtension must be valid"); CompensationToken compensationToken = Target.Get(context); Fx.Assert(compensationToken != null, "compensationToken must be valid"); // The compensationToken should be a valid one at this point. Ensure its validated in Confirm activity. CompensationTokenData tokenData = compensationExtension.Get(compensationToken.CompensationId); Fx.Assert(tokenData != null, "The compensationToken should be a valid one at this point. Ensure its validated in Confirm activity."); Fx.Assert(tokenData.BookmarkTable[CompensationBookmarkName.Confirmed] == null, "Bookmark should not be already initialized in the bookmark table."); tokenData.BookmarkTable[CompensationBookmarkName.Confirmed] = context.CreateBookmark(new BookmarkCallback(OnConfirmed)); tokenData.CompensationState = CompensationState.Confirming; compensationExtension.NotifyMessage(context, tokenData.CompensationId, CompensationBookmarkName.OnConfirmation); } // Successfully received Confirmed response. void OnConfirmed(NativeActivityContext context, Bookmark bookmark, object value) { CompensationExtension compensationExtension = context.GetExtension (); Fx.Assert(compensationExtension != null, "CompensationExtension must be valid"); CompensationToken compensationToken = Target.Get(context); Fx.Assert(compensationToken != null, "compensationToken must be valid"); // The compensationToken should be a valid one at this point. Ensure its validated in Confirm activity. CompensationTokenData tokenData = compensationExtension.Get(compensationToken.CompensationId); Fx.Assert(tokenData != null, "The compensationToken should be a valid one at this point. Ensure its validated in Confirm activity."); tokenData.CompensationState = CompensationState.Confirmed; if(TD.CompensationStateIsEnabled()) { TD.CompensationState(tokenData.DisplayName, tokenData.CompensationState.ToString()); } // Remove the token from the parent! if (tokenData.ParentCompensationId != CompensationToken.RootCompensationId) { CompensationTokenData parentToken = compensationExtension.Get(tokenData.ParentCompensationId); Fx.Assert(parentToken != null, "parentToken must be valid"); parentToken.ExecutionTracker.Remove(tokenData); } else { // remove from workflow root... CompensationTokenData parentToken = compensationExtension.Get(CompensationToken.RootCompensationId); Fx.Assert(parentToken != null, "parentToken must be valid"); parentToken.ExecutionTracker.Remove(tokenData); } tokenData.RemoveBookmark(context, CompensationBookmarkName.Confirmed); // Remove the token from the extension... compensationExtension.Remove(compensationToken.CompensationId); } protected override void Cancel(NativeActivityContext context) { // Suppress Cancel } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DataSysAttribute.cs
- COM2ComponentEditor.cs
- EFColumnProvider.cs
- TransactedBatchContext.cs
- FontNamesConverter.cs
- IntPtr.cs
- ConversionContext.cs
- DrawingContextWalker.cs
- SocketInformation.cs
- Zone.cs
- PrintDialogException.cs
- EdmMember.cs
- TemplateNameScope.cs
- StreamWriter.cs
- TransformGroup.cs
- QilList.cs
- ScriptResourceInfo.cs
- ActivityExecutorDelegateInfo.cs
- ObjectRef.cs
- TextDecoration.cs
- DragSelectionMessageFilter.cs
- StringFormat.cs
- WorkflowViewStateService.cs
- InfiniteTimeSpanConverter.cs
- _SpnDictionary.cs
- CultureInfoConverter.cs
- DesignerAutoFormatStyle.cs
- DataServiceKeyAttribute.cs
- FileLoadException.cs
- XmlElementList.cs
- InputLangChangeRequestEvent.cs
- InfoCardBinaryReader.cs
- WSAddressing10ProblemHeaderQNameFault.cs
- _emptywebproxy.cs
- GridViewColumnCollection.cs
- TextBlockAutomationPeer.cs
- DataGridViewImageCell.cs
- DebugControllerThread.cs
- PerformanceCounterPermissionEntry.cs
- TimelineClockCollection.cs
- EmptyEnumerable.cs
- ImageField.cs
- translator.cs
- DataColumnMapping.cs
- MatrixTransform3D.cs
- StackOverflowException.cs
- RawStylusInputCustomDataList.cs
- FeatureManager.cs
- EntityProxyTypeInfo.cs
- Base64Encoder.cs
- SharedDp.cs
- NamedPermissionSet.cs
- RawStylusActions.cs
- ProviderException.cs
- MailAddress.cs
- Zone.cs
- AbstractExpressions.cs
- ArraySegment.cs
- MarshalDirectiveException.cs
- FocusWithinProperty.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- DecimalAnimation.cs
- FlowLayout.cs
- PrimitiveXmlSerializers.cs
- COM2FontConverter.cs
- ValueChangedEventManager.cs
- XmlWhitespace.cs
- DigitalSignature.cs
- ServiceMetadataPublishingElement.cs
- XmlSchemaAny.cs
- ColorBuilder.cs
- PageParserFilter.cs
- DynamicAttribute.cs
- HttpCacheParams.cs
- EngineSiteSapi.cs
- DrawListViewColumnHeaderEventArgs.cs
- Polygon.cs
- FixUpCollection.cs
- ImportedNamespaceContextItem.cs
- TdsRecordBufferSetter.cs
- PersonalizationStateInfoCollection.cs
- SharedDp.cs
- SecurityKeyIdentifierClause.cs
- Wrapper.cs
- ArrayWithOffset.cs
- AdapterDictionary.cs
- RawTextInputReport.cs
- RefreshEventArgs.cs
- XmlSchemaAttribute.cs
- OutputWindow.cs
- DataControlFieldTypeEditor.cs
- EncryptedPackage.cs
- PropertyEntry.cs
- DataGridTextBoxColumn.cs
- wgx_exports.cs
- DataGridColumnFloatingHeader.cs
- XmlAutoDetectWriter.cs
- AccessDataSourceWizardForm.cs
- CustomError.cs
- DataBoundControl.cs