Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.Activities / System / Activities / Statements / DefaultConfirmation.cs / 1305376 / DefaultConfirmation.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 DefaultConfirmation : NativeActivity { Activity body; VariabletoConfirmToken; CompletionCallback onChildConfirmed; public DefaultConfirmation() : base() { this.toConfirmToken = new Variable (); this.body = new InternalConfirm() { Target = new InArgument (toConfirmToken), }; } public InArgument Target { get; set; } Activity Body { get { return this.body; } } 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 }); metadata.SetImplementationVariablesCollection(new Collection { this.toConfirmToken }); Fx.Assert(this.Body != null, "Body must be valid"); metadata.SetImplementationChildrenCollection(new Collection { this.Body }); } protected override void Execute(NativeActivityContext context) { InternalExecute(context, null); } void InternalExecute(NativeActivityContext context, ActivityInstance completedInstance) { CompensationExtension compensationExtension = context.GetExtension (); if (compensationExtension == null) { throw FxTrace.Exception.AsError(new InvalidOperationException(SR.ConfirmWithoutCompensableActivity(this.DisplayName))); } CompensationToken token = Target.Get(context); CompensationTokenData tokenData = token == null ? null : compensationExtension.Get(token.CompensationId); Fx.Assert(tokenData != null, "CompensationTokenData must be valid"); if (tokenData.ExecutionTracker.Count > 0) { if (this.onChildConfirmed == null) { this.onChildConfirmed = new CompletionCallback(InternalExecute); } this.toConfirmToken.Set(context, new CompensationToken(tokenData.ExecutionTracker.Get())); Fx.Assert(Body != null, "Body must be valid"); context.ScheduleActivity(Body, this.onChildConfirmed); } } 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
- MailWriter.cs
- _RequestLifetimeSetter.cs
- ReachSerializerAsync.cs
- WebConfigurationHostFileChange.cs
- CodeBlockBuilder.cs
- DataListItem.cs
- DataSet.cs
- OdbcTransaction.cs
- TableLayoutSettings.cs
- InvalidPrinterException.cs
- SerialPort.cs
- StylusButtonCollection.cs
- WorkflowInstanceTerminatedRecord.cs
- TableItemProviderWrapper.cs
- UserPreferenceChangedEventArgs.cs
- StickyNoteHelper.cs
- FileUpload.cs
- TaskForm.cs
- RecordConverter.cs
- StrokeNodeData.cs
- OverlappedContext.cs
- CopyOfAction.cs
- KnownTypeAttribute.cs
- TemplateAction.cs
- ActivityWithResultConverter.cs
- SqlServer2KCompatibilityAnnotation.cs
- WindowInteropHelper.cs
- RijndaelManaged.cs
- FileDialog.cs
- EncodingDataItem.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- COM2Enum.cs
- PackageProperties.cs
- SystemColors.cs
- DataColumnMapping.cs
- CloudCollection.cs
- OleDbFactory.cs
- ProfessionalColorTable.cs
- ArrayHelper.cs
- ListItemParagraph.cs
- MailSettingsSection.cs
- SqlFlattener.cs
- OracleConnectionString.cs
- JournalEntryStack.cs
- RemoteWebConfigurationHostStream.cs
- DataSourceControl.cs
- MenuItemStyle.cs
- DataGridViewUtilities.cs
- SimpleMailWebEventProvider.cs
- CompilerScopeManager.cs
- UnauthorizedAccessException.cs
- PageAsyncTask.cs
- ReadOnlyObservableCollection.cs
- latinshape.cs
- DefaultPropertyAttribute.cs
- SvcFileManager.cs
- CodeEntryPointMethod.cs
- SafeNativeMethodsMilCoreApi.cs
- DataControlFieldCollection.cs
- VisualStyleRenderer.cs
- SecurityContext.cs
- CLSCompliantAttribute.cs
- RepeatBehavior.cs
- VisualStateGroup.cs
- ResolveNameEventArgs.cs
- SourceFileInfo.cs
- PeerApplication.cs
- JoinGraph.cs
- ConfigXmlAttribute.cs
- MenuStrip.cs
- InfiniteTimeSpanConverter.cs
- DataServiceQueryException.cs
- ProfileGroupSettings.cs
- AssociationTypeEmitter.cs
- StorageEntitySetMapping.cs
- WebBrowserBase.cs
- IisTraceListener.cs
- ParseElementCollection.cs
- HtmlInputButton.cs
- RemotingConfiguration.cs
- WebResourceUtil.cs
- RegexWorker.cs
- StylesEditorDialog.cs
- control.ime.cs
- AsmxEndpointPickerExtension.cs
- ParsedAttributeCollection.cs
- FastEncoder.cs
- ObjectDataSourceFilteringEventArgs.cs
- WebPartCloseVerb.cs
- VisualCollection.cs
- SignedXml.cs
- TableDesigner.cs
- Stream.cs
- GPPOINT.cs
- ListViewAutomationPeer.cs
- PerspectiveCamera.cs
- LingerOption.cs
- JulianCalendar.cs
- DesignerSelectionListAdapter.cs
- XmlQuerySequence.cs