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
- SinglePageViewer.cs
- BaseComponentEditor.cs
- WithParamAction.cs
- InternalConfigHost.cs
- Vector3D.cs
- ExpressionTable.cs
- DeploymentSection.cs
- SafeFreeMibTable.cs
- SchemaNames.cs
- DefaultMemberAttribute.cs
- PKCS1MaskGenerationMethod.cs
- BinaryExpression.cs
- ColumnResizeAdorner.cs
- CollectionChangeEventArgs.cs
- InheritanceContextChangedEventManager.cs
- Oci.cs
- MetadataSource.cs
- ObjectDataSourceStatusEventArgs.cs
- RequestTimeoutManager.cs
- Internal.cs
- Shape.cs
- MemberInfoSerializationHolder.cs
- DynamicILGenerator.cs
- SizeValueSerializer.cs
- xamlnodes.cs
- GraphicsState.cs
- ViewStateException.cs
- SequentialUshortCollection.cs
- DefaultMemberAttribute.cs
- ConfigXmlDocument.cs
- Shared.cs
- ExtensionDataObject.cs
- BitmapEffectGroup.cs
- TypeHelper.cs
- ComponentEditorPage.cs
- TextBoxBase.cs
- querybuilder.cs
- TypeDescriptionProvider.cs
- ToolStripDropDownButton.cs
- RangeValidator.cs
- ArrayExtension.cs
- ICspAsymmetricAlgorithm.cs
- CodeMethodInvokeExpression.cs
- DebugHandleTracker.cs
- SystemNetHelpers.cs
- XPathPatternParser.cs
- CustomDictionarySources.cs
- ChoiceConverter.cs
- _PooledStream.cs
- SerializationObjectManager.cs
- ErrorWrapper.cs
- FileSecurity.cs
- IisTraceWebEventProvider.cs
- PropVariant.cs
- PreProcessInputEventArgs.cs
- OlePropertyStructs.cs
- ControlCachePolicy.cs
- KeyManager.cs
- System.Data_BID.cs
- CustomWebEventKey.cs
- WebConfigurationHostFileChange.cs
- Emitter.cs
- XmlSchemaNotation.cs
- GlyphTypeface.cs
- XPathNavigatorKeyComparer.cs
- FontFaceLayoutInfo.cs
- FixedPageAutomationPeer.cs
- BindableAttribute.cs
- OdbcInfoMessageEvent.cs
- GroupPartitionExpr.cs
- HtmlTernaryTree.cs
- XmlSerializerAssemblyAttribute.cs
- EasingFunctionBase.cs
- UnsafeNativeMethods.cs
- AttachedPropertyBrowsableForChildrenAttribute.cs
- CodeParameterDeclarationExpression.cs
- BuildProviderCollection.cs
- ComplusTypeValidator.cs
- PieceDirectory.cs
- Sql8ConformanceChecker.cs
- ThreadAbortException.cs
- PriorityItem.cs
- ValueExpressions.cs
- ConnectionInterfaceCollection.cs
- ModelPropertyCollectionImpl.cs
- IsolatedStorageException.cs
- Delay.cs
- unitconverter.cs
- PrePrepareMethodAttribute.cs
- StringUtil.cs
- DocumentReference.cs
- WrappedIUnknown.cs
- ObjectDataSource.cs
- ArcSegment.cs
- DefaultValueConverter.cs
- UserCancellationException.cs
- FixUpCollection.cs
- StandardCommands.cs
- HtmlTextViewAdapter.cs
- ByteRangeDownloader.cs