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
- PrimaryKeyTypeConverter.cs
- PeerUnsafeNativeMethods.cs
- OutputCacheSettings.cs
- HttpHandlerActionCollection.cs
- WindowsListViewItemStartMenu.cs
- ConstNode.cs
- TableRowCollection.cs
- SafeRightsManagementHandle.cs
- Vector3DConverter.cs
- ItemAutomationPeer.cs
- IItemContainerGenerator.cs
- PersonalizationEntry.cs
- XmlDictionaryString.cs
- ChildrenQuery.cs
- ContextMenu.cs
- CodeFieldReferenceExpression.cs
- DynamicFilterExpression.cs
- InkSerializer.cs
- _FtpControlStream.cs
- EntityReference.cs
- SamlAttribute.cs
- Renderer.cs
- ListChunk.cs
- RegistryExceptionHelper.cs
- KnownBoxes.cs
- Property.cs
- ResponseBodyWriter.cs
- CellIdBoolean.cs
- FixedElement.cs
- ComplusTypeValidator.cs
- Int32AnimationBase.cs
- XmlCharCheckingReader.cs
- InputBuffer.cs
- HandleCollector.cs
- XmlHierarchicalDataSourceView.cs
- ErrorEventArgs.cs
- TemplatedMailWebEventProvider.cs
- HMACRIPEMD160.cs
- AssemblyBuilder.cs
- SoapHeaders.cs
- WebHttpElement.cs
- HttpWebResponse.cs
- RowParagraph.cs
- ErrorWrapper.cs
- WmlSelectionListAdapter.cs
- WebHeaderCollection.cs
- RequestResponse.cs
- ProcessHostMapPath.cs
- RadioButtonAutomationPeer.cs
- ObservableDictionary.cs
- StrokeRenderer.cs
- DataListItemCollection.cs
- FontFamily.cs
- WebAdminConfigurationHelper.cs
- NativeMethods.cs
- RawStylusActions.cs
- SafePEFileHandle.cs
- PnrpPermission.cs
- ElementFactory.cs
- MainMenu.cs
- CodeArrayIndexerExpression.cs
- HttpProtocolImporter.cs
- InkCanvasSelection.cs
- MasterPageParser.cs
- BStrWrapper.cs
- NavigationPropertyEmitter.cs
- ThemeDirectoryCompiler.cs
- Message.cs
- COSERVERINFO.cs
- Quaternion.cs
- ControlPropertyNameConverter.cs
- WpfGeneratedKnownTypes.cs
- UrlPropertyAttribute.cs
- FrameworkElementFactoryMarkupObject.cs
- MetadataArtifactLoaderCompositeFile.cs
- Metadata.cs
- BitmapEffectState.cs
- CodeGenerator.cs
- FilteredXmlReader.cs
- Int32CAMarshaler.cs
- HttpFileCollection.cs
- DockPatternIdentifiers.cs
- RuntimeConfigLKG.cs
- TextRangeBase.cs
- serverconfig.cs
- KernelTypeValidation.cs
- BitmapSource.cs
- QuarticEase.cs
- HtmlAnchor.cs
- CustomSignedXml.cs
- DataBindEngine.cs
- WorkflowInspectionServices.cs
- DataBoundLiteralControl.cs
- ACE.cs
- ActivitiesCollection.cs
- TypeGeneratedEventArgs.cs
- DataGridTableCollection.cs
- Compiler.cs
- XmlAttributeProperties.cs
- ColumnClickEvent.cs