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
- ListCollectionView.cs
- SignatureGenerator.cs
- XmlSchemaDocumentation.cs
- KnownTypesProvider.cs
- SparseMemoryStream.cs
- ToolStripItemCollection.cs
- MultiSelectRootGridEntry.cs
- Rfc2898DeriveBytes.cs
- DataGridViewEditingControlShowingEventArgs.cs
- PolicyException.cs
- TableCellCollection.cs
- RegexCompilationInfo.cs
- OpacityConverter.cs
- SqlDataSourceFilteringEventArgs.cs
- TabControl.cs
- BuildProvider.cs
- ContextStack.cs
- UnsafeNativeMethodsPenimc.cs
- SafeEventLogReadHandle.cs
- DataGridViewComboBoxColumnDesigner.cs
- Parallel.cs
- OdbcReferenceCollection.cs
- ProfileEventArgs.cs
- ColumnMapVisitor.cs
- DbModificationCommandTree.cs
- FixedPageProcessor.cs
- GuidTagList.cs
- XmlILIndex.cs
- CodeCompiler.cs
- TextRange.cs
- ValueTable.cs
- PointAnimation.cs
- FactoryGenerator.cs
- wgx_commands.cs
- SqlMultiplexer.cs
- EventDescriptorCollection.cs
- ImageSource.cs
- IisTraceListener.cs
- RotateTransform3D.cs
- DesignerSerializationOptionsAttribute.cs
- SqlBuffer.cs
- VarRefManager.cs
- HuffCodec.cs
- Point3DAnimationBase.cs
- UmAlQuraCalendar.cs
- WrappedOptions.cs
- FamilyTypefaceCollection.cs
- XmlToDatasetMap.cs
- SqlDataReaderSmi.cs
- BitmapVisualManager.cs
- Certificate.cs
- MultiTrigger.cs
- WebResponse.cs
- Themes.cs
- LinqDataSourceValidationException.cs
- ResourceContainer.cs
- ForAllOperator.cs
- BamlBinaryReader.cs
- FileDialog.cs
- MultiBindingExpression.cs
- RelationshipWrapper.cs
- ParseNumbers.cs
- ErrorProvider.cs
- CodeGenHelper.cs
- CaseStatement.cs
- UIElementParagraph.cs
- DbProviderFactories.cs
- SimpleBitVector32.cs
- CrossAppDomainChannel.cs
- XmlException.cs
- RequestCache.cs
- WindowsFont.cs
- WebPermission.cs
- EntitySqlException.cs
- StateRuntime.cs
- DataSetMappper.cs
- CapabilitiesSection.cs
- SQLInt16Storage.cs
- LookupBindingPropertiesAttribute.cs
- CommandID.cs
- Parser.cs
- Base64Decoder.cs
- PartialTrustValidationBehavior.cs
- OleDbDataAdapter.cs
- InteropDesigner.xaml.cs
- StringAnimationUsingKeyFrames.cs
- ArgumentNullException.cs
- PhoneCall.cs
- DbConnectionHelper.cs
- BaseProcessProtocolHandler.cs
- XmlSchemaExternal.cs
- XmlSchemas.cs
- SharedHttpsTransportManager.cs
- controlskin.cs
- PermissionAttributes.cs
- TransactionCache.cs
- DefaultAuthorizationContext.cs
- ProtectedUri.cs
- ConfigurationPropertyAttribute.cs
- WpfSharedXamlSchemaContext.cs