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
- DispatcherOperation.cs
- ComAdminWrapper.cs
- ServiceDescriptionSerializer.cs
- XmlSerializableReader.cs
- SchemaDeclBase.cs
- GridViewCommandEventArgs.cs
- SafePEFileHandle.cs
- InvokeMethod.cs
- SecurityKeyIdentifierClause.cs
- OLEDB_Util.cs
- HtmlString.cs
- DictionaryBase.cs
- X509ClientCertificateAuthentication.cs
- TranslateTransform.cs
- safemediahandle.cs
- UpdateException.cs
- CollectionViewSource.cs
- FacetDescription.cs
- StatusBarPanelClickEvent.cs
- MessageEncodingBindingElementImporter.cs
- SafeEventLogWriteHandle.cs
- AnnotationHelper.cs
- NativeMethods.cs
- RoleGroup.cs
- CacheSection.cs
- PropertyEmitter.cs
- SQLDouble.cs
- QueryOptionExpression.cs
- ISO2022Encoding.cs
- RectangleConverter.cs
- DateBoldEvent.cs
- ListItemCollection.cs
- PageStatePersister.cs
- DoubleUtil.cs
- PrtTicket_Public_Simple.cs
- CharacterShapingProperties.cs
- Visual3DCollection.cs
- FormatException.cs
- SystemThemeKey.cs
- TraceProvider.cs
- ExceptionUtil.cs
- TextBoxAutoCompleteSourceConverter.cs
- CancellationScope.cs
- HTTPRemotingHandler.cs
- ComboBox.cs
- WsdlInspector.cs
- DbMetaDataCollectionNames.cs
- GPPOINTF.cs
- AvTraceDetails.cs
- ConfigXmlDocument.cs
- PropertyItem.cs
- COM2TypeInfoProcessor.cs
- WinFormsSpinner.cs
- VersionedStream.cs
- EncodingStreamWrapper.cs
- CommentEmitter.cs
- EmbeddedObject.cs
- TraceRecords.cs
- FaultHandlingFilter.cs
- BlockUIContainer.cs
- HMAC.cs
- _ChunkParse.cs
- EntityModelBuildProvider.cs
- MinimizableAttributeTypeConverter.cs
- TranslateTransform3D.cs
- ValidationHelper.cs
- OdbcParameterCollection.cs
- PointAnimationUsingKeyFrames.cs
- SamlEvidence.cs
- SqlConnectionFactory.cs
- DrawListViewColumnHeaderEventArgs.cs
- TileBrush.cs
- unsafenativemethodsother.cs
- UnmanagedMemoryStreamWrapper.cs
- TargetException.cs
- QilTernary.cs
- WebPartConnectionsCancelEventArgs.cs
- XomlCompilerParameters.cs
- SignatureConfirmations.cs
- FixedSchema.cs
- NameValueSectionHandler.cs
- HttpContextWrapper.cs
- HtmlFormParameterWriter.cs
- DbDataReader.cs
- ButtonBaseAdapter.cs
- WpfWebRequestHelper.cs
- ExpressionVisitorHelpers.cs
- CellIdBoolean.cs
- SqlDataSource.cs
- XamlHostingSection.cs
- TextContainerChangeEventArgs.cs
- TemplateAction.cs
- IIS7UserPrincipal.cs
- FunctionParameter.cs
- WindowsToolbar.cs
- ProviderManager.cs
- CqlParserHelpers.cs
- Int64.cs
- Serializer.cs
- GeometryHitTestResult.cs