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
- oledbmetadatacolumnnames.cs
- QuestionEventArgs.cs
- DynamicExpression.cs
- ObjRef.cs
- SqlSupersetValidator.cs
- DateTimeFormat.cs
- WindowsSolidBrush.cs
- ToggleButtonAutomationPeer.cs
- CounterSet.cs
- ViewUtilities.cs
- RequestCachePolicy.cs
- ADConnectionHelper.cs
- EnumMemberAttribute.cs
- Utils.cs
- RequestSecurityTokenForRemoteTokenFactory.cs
- SmtpAuthenticationManager.cs
- ServicePointManagerElement.cs
- OleDbMetaDataFactory.cs
- CellQuery.cs
- ArgumentOutOfRangeException.cs
- CustomExpression.cs
- ConnectionOrientedTransportManager.cs
- LocalizationComments.cs
- UrlMappingCollection.cs
- SoapException.cs
- InternalSafeNativeMethods.cs
- IFlowDocumentViewer.cs
- EventManager.cs
- LongTypeConverter.cs
- DifferencingCollection.cs
- Attachment.cs
- ToolBarButtonClickEvent.cs
- CodeIterationStatement.cs
- ListItem.cs
- FontStretch.cs
- Enlistment.cs
- LogReservationCollection.cs
- validationstate.cs
- PropertyMap.cs
- Nodes.cs
- UnorderedHashRepartitionStream.cs
- HitTestFilterBehavior.cs
- MetadataItem.cs
- httpstaticobjectscollection.cs
- Invariant.cs
- RegisteredScript.cs
- WorkflowWebService.cs
- ThreadPool.cs
- WebScriptMetadataMessageEncoderFactory.cs
- MultipleViewPattern.cs
- QuaternionRotation3D.cs
- TraceHwndHost.cs
- VirtualPathProvider.cs
- CaseInsensitiveOrdinalStringComparer.cs
- TransformerConfigurationWizardBase.cs
- MemberDescriptor.cs
- FormClosingEvent.cs
- Int32CAMarshaler.cs
- CaseStatement.cs
- InternalSendMessage.cs
- BitmapEffect.cs
- ServiceKnownTypeAttribute.cs
- CharacterMetricsDictionary.cs
- ConstantCheck.cs
- StringDictionaryEditor.cs
- _ConnectionGroup.cs
- TemplateBindingExpressionConverter.cs
- VirtualizingPanel.cs
- ToolboxService.cs
- TextSerializer.cs
- EditorPart.cs
- ImpersonateTokenRef.cs
- Simplifier.cs
- SqlConnectionHelper.cs
- PageSetupDialog.cs
- ApplicationId.cs
- RequestNavigateEventArgs.cs
- propertyentry.cs
- InputScope.cs
- StringFunctions.cs
- AccessedThroughPropertyAttribute.cs
- rsa.cs
- AsyncContentLoadedEventArgs.cs
- log.cs
- RsaSecurityTokenAuthenticator.cs
- DriveNotFoundException.cs
- DataControlButton.cs
- DataGridTextBox.cs
- GridLength.cs
- DiscoveryEndpointValidator.cs
- ObjectDataSource.cs
- HttpCapabilitiesEvaluator.cs
- SyntaxCheck.cs
- BitmapEffectGroup.cs
- Base64Encoder.cs
- ActivitySurrogateSelector.cs
- HatchBrush.cs
- GradientSpreadMethodValidation.cs
- SizeAnimationBase.cs
- HttpInputStream.cs