Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.Activities / System / Activities / DurableInstancing / SaveWorkflowCommand.cs / 1305376 / SaveWorkflowCommand.cs
//---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- namespace System.Activities.DurableInstancing { using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Runtime; using System.Runtime.DurableInstancing; using System.Xml.Linq; [Fx.Tag.XamlVisible(false)] public sealed class SaveWorkflowCommand : InstancePersistenceCommand { Dictionary> keysToAssociate; Collection keysToComplete; Collection keysToFree; Dictionary instanceData; Dictionary instanceMetadataChanges; Dictionary > keyMetadataChanges; public SaveWorkflowCommand() : base(InstancePersistence.ActivitiesCommandNamespace.GetName("SaveWorkflow")) { } public bool UnlockInstance { get; set; } public bool CompleteInstance { get; set; } public IDictionary > InstanceKeysToAssociate { get { if (this.keysToAssociate == null) { this.keysToAssociate = new Dictionary >(); } return this.keysToAssociate; } } public ICollection InstanceKeysToComplete { get { if (this.keysToComplete == null) { this.keysToComplete = new Collection (); } return this.keysToComplete; } } public ICollection InstanceKeysToFree { get { if (this.keysToFree == null) { this.keysToFree = new Collection (); } return this.keysToFree; } } public IDictionary InstanceMetadataChanges { get { if (this.instanceMetadataChanges == null) { this.instanceMetadataChanges = new Dictionary (); } return this.instanceMetadataChanges; } } public IDictionary > InstanceKeyMetadataChanges { get { if (this.keyMetadataChanges == null) { this.keyMetadataChanges = new Dictionary >(); } return this.keyMetadataChanges; } } public IDictionary InstanceData { get { if (this.instanceData == null) { this.instanceData = new Dictionary (); } return this.instanceData; } } protected internal override bool IsTransactionEnlistmentOptional { get { return !CompleteInstance && (this.instanceData == null || this.instanceData.Count == 0) && (this.keyMetadataChanges == null || this.keyMetadataChanges.Count == 0) && (this.instanceMetadataChanges == null || this.instanceMetadataChanges.Count == 0) && (this.keysToFree == null || this.keysToFree.Count == 0) && (this.keysToComplete == null || this.keysToComplete.Count == 0) && (this.keysToAssociate == null || this.keysToAssociate.Count == 0); } } protected internal override bool AutomaticallyAcquiringLock { get { return true; } } protected internal override void Validate(InstanceView view) { if (!view.IsBoundToInstance) { throw FxTrace.Exception.AsError(new InvalidOperationException(SRCore.InstanceRequired)); } if (!view.IsBoundToInstanceOwner) { throw FxTrace.Exception.AsError(new InvalidOperationException(SRCore.OwnerRequired)); } if (this.keysToAssociate != null) { foreach (KeyValuePair > key in this.keysToAssociate) { InstancePersistence.ValidatePropertyBag(key.Value); } } if (this.keyMetadataChanges != null) { foreach (KeyValuePair > key in this.keyMetadataChanges) { InstancePersistence.ValidatePropertyBag(key.Value, true); } } if (this.CompleteInstance && !this.UnlockInstance) { throw FxTrace.Exception.AsError(new InvalidOperationException(SRCore.ValidateUnlockInstance)); } InstancePersistence.ValidatePropertyBag(this.instanceMetadataChanges, true); InstancePersistence.ValidatePropertyBag(this.instanceData); } } } // 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
- ProgramPublisher.cs
- SingleAnimationUsingKeyFrames.cs
- Wildcard.cs
- Dynamic.cs
- TextServicesContext.cs
- DataColumnMappingCollection.cs
- DetailsViewDeletedEventArgs.cs
- GridViewColumnCollection.cs
- UnsafeNativeMethods.cs
- HistoryEventArgs.cs
- BuildDependencySet.cs
- XsltLoader.cs
- ItemCollection.cs
- OperatingSystem.cs
- TransformGroup.cs
- DrawingContextDrawingContextWalker.cs
- DriveNotFoundException.cs
- TrustLevelCollection.cs
- SaveLedgerEntryRequest.cs
- ProbeRequestResponseAsyncResult.cs
- QueryContinueDragEventArgs.cs
- MimeFormatter.cs
- SvcMapFileLoader.cs
- HostingPreferredMapPath.cs
- Underline.cs
- DrawingDrawingContext.cs
- basevalidator.cs
- safelink.cs
- InvokeMethod.cs
- ExtensibleSyndicationObject.cs
- AdornedElementPlaceholder.cs
- OdbcInfoMessageEvent.cs
- DocumentXmlWriter.cs
- CheckableControlBaseAdapter.cs
- GregorianCalendarHelper.cs
- SqlClientWrapperSmiStream.cs
- Int32Collection.cs
- WebPartPersonalization.cs
- AppModelKnownContentFactory.cs
- HtmlInputImage.cs
- SmtpTransport.cs
- TextRange.cs
- CustomAttributeBuilder.cs
- initElementDictionary.cs
- ListDictionary.cs
- AssemblyNameProxy.cs
- ExpressionDumper.cs
- SqlDataSourceStatusEventArgs.cs
- ColorMap.cs
- PropertyGridView.cs
- DesignerView.Commands.cs
- GeometryDrawing.cs
- GatewayIPAddressInformationCollection.cs
- XmlConvert.cs
- InternalDuplexChannelListener.cs
- ContextStaticAttribute.cs
- SystemWebSectionGroup.cs
- SqlAggregateChecker.cs
- SqlExpressionNullability.cs
- VirtualPathProvider.cs
- Graph.cs
- TextFormatterHost.cs
- FontSource.cs
- BufferedGraphicsManager.cs
- MaskInputRejectedEventArgs.cs
- NavigateEvent.cs
- GroupByExpressionRewriter.cs
- EventManager.cs
- SrgsSubset.cs
- SqlReorderer.cs
- LineGeometry.cs
- ListItemConverter.cs
- InternalMappingException.cs
- AutomationTextAttribute.cs
- ReachSerializableProperties.cs
- FileClassifier.cs
- NavigatorInput.cs
- ProgressBarBrushConverter.cs
- DebuggerService.cs
- XmlRawWriterWrapper.cs
- DataObjectMethodAttribute.cs
- VariableQuery.cs
- CompensationParticipant.cs
- CorrelationManager.cs
- BaseAutoFormat.cs
- ExpandedWrapper.cs
- SystemIcmpV4Statistics.cs
- SectionUpdates.cs
- RowUpdatingEventArgs.cs
- HttpStreamFormatter.cs
- ResXFileRef.cs
- CommandManager.cs
- RestHandler.cs
- StorageMappingFragment.cs
- TranslateTransform.cs
- Int16KeyFrameCollection.cs
- Scripts.cs
- TaskFileService.cs
- ToRequest.cs
- HttpRequestTraceRecord.cs