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
- RouteParametersHelper.cs
- ConversionValidationRule.cs
- DrawItemEvent.cs
- TransformerInfoCollection.cs
- AuthenticationManager.cs
- AnonymousIdentificationModule.cs
- SafeEventLogWriteHandle.cs
- DataGridTextBoxColumn.cs
- EdgeProfileValidation.cs
- ServiceOperation.cs
- filewebrequest.cs
- ConfigurationProperty.cs
- ObjectStateFormatter.cs
- GeneralTransform3DGroup.cs
- PasswordPropertyTextAttribute.cs
- DataColumnMappingCollection.cs
- Range.cs
- WebSysDisplayNameAttribute.cs
- LockedActivityGlyph.cs
- StylusPointPropertyInfoDefaults.cs
- MatrixConverter.cs
- WebPartEditorApplyVerb.cs
- LinqMaximalSubtreeNominator.cs
- TrackBar.cs
- LocalValueEnumerator.cs
- Button.cs
- MouseEvent.cs
- OleDbReferenceCollection.cs
- SQLRoleProvider.cs
- ContentPlaceHolderDesigner.cs
- DataViewListener.cs
- GeneralTransform.cs
- XmlSerializableWriter.cs
- WindowsListViewGroupSubsetLink.cs
- EntityModelSchemaGenerator.cs
- SqlNotificationEventArgs.cs
- Function.cs
- FaultReasonText.cs
- Msmq3PoisonHandler.cs
- XmlSchemaAttributeGroupRef.cs
- DesignerExtenders.cs
- ActivityDesignerHelper.cs
- SqlCacheDependency.cs
- GreaterThanOrEqual.cs
- InputMethodStateTypeInfo.cs
- TimeSpanSecondsOrInfiniteConverter.cs
- WorkflowWebService.cs
- SelectionPatternIdentifiers.cs
- XmlAtomicValue.cs
- ChineseLunisolarCalendar.cs
- KernelTypeValidation.cs
- DataGridViewIntLinkedList.cs
- MeshGeometry3D.cs
- HttpRequest.cs
- HandlerWithFactory.cs
- DataGridViewSortCompareEventArgs.cs
- XmlIlTypeHelper.cs
- UTF8Encoding.cs
- _UriSyntax.cs
- CorePropertiesFilter.cs
- ResourceDescriptionAttribute.cs
- ToggleProviderWrapper.cs
- XmlMemberMapping.cs
- _HeaderInfo.cs
- RefType.cs
- ListItemViewAttribute.cs
- BitmapCodecInfoInternal.cs
- CustomErrorsSectionWrapper.cs
- ReaderWriterLockWrapper.cs
- DataGridViewRow.cs
- ToolStripGripRenderEventArgs.cs
- ScriptingRoleServiceSection.cs
- HttpHandlerActionCollection.cs
- AsymmetricAlgorithm.cs
- Ipv6Element.cs
- NativeWindow.cs
- XamlReaderConstants.cs
- AmbientProperties.cs
- SetterTriggerConditionValueConverter.cs
- OperationCanceledException.cs
- Switch.cs
- BamlRecordHelper.cs
- EntitySetBase.cs
- WebBrowserBase.cs
- WindowHelperService.cs
- SizeValueSerializer.cs
- DocumentPageViewAutomationPeer.cs
- WindowsGraphics2.cs
- CodeMethodInvokeExpression.cs
- SchemaReference.cs
- XmlDictionaryWriter.cs
- WorkflowInstanceRecord.cs
- VariantWrapper.cs
- Point.cs
- PropertyPathWorker.cs
- PropertyTabAttribute.cs
- TheQuery.cs
- PerspectiveCamera.cs
- SystemColorTracker.cs
- FormsAuthenticationConfiguration.cs