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
- OptimalTextSource.cs
- SpoolingTaskBase.cs
- BitmapCodecInfo.cs
- StylusLogic.cs
- StyleTypedPropertyAttribute.cs
- SqlParameter.cs
- ImageSource.cs
- XmlValidatingReader.cs
- XmlSerializerAssemblyAttribute.cs
- CodeSnippetCompileUnit.cs
- ExpressionBuilder.cs
- AutomationPropertyInfo.cs
- XmlSchemaExternal.cs
- WmlCalendarAdapter.cs
- EntityCommand.cs
- ProgressChangedEventArgs.cs
- ContentElement.cs
- XsdDuration.cs
- LinkClickEvent.cs
- XmlLinkedNode.cs
- Zone.cs
- DataBindingHandlerAttribute.cs
- XPathNavigatorKeyComparer.cs
- Rotation3DAnimationBase.cs
- UnknownWrapper.cs
- TdsValueSetter.cs
- MsmqTransportBindingElement.cs
- NamedPipeChannelListener.cs
- FilePrompt.cs
- IteratorDescriptor.cs
- PersonalizationProviderCollection.cs
- TextPointer.cs
- DefaultValueTypeConverter.cs
- UserPersonalizationStateInfo.cs
- KeyTimeConverter.cs
- ButtonFieldBase.cs
- FactoryGenerator.cs
- DrawingAttributeSerializer.cs
- ThreadPoolTaskScheduler.cs
- DynamicValueConverter.cs
- SqlCacheDependencyDatabase.cs
- DecimalFormatter.cs
- StyleSelector.cs
- SingleStorage.cs
- VectorValueSerializer.cs
- HtmlForm.cs
- DataGridViewTextBoxEditingControl.cs
- Baml2006ReaderFrame.cs
- CharEnumerator.cs
- SqlProfileProvider.cs
- VerificationException.cs
- TreeNode.cs
- PathFigureCollection.cs
- DiffuseMaterial.cs
- DnsPermission.cs
- SqlGenericUtil.cs
- StylusButtonEventArgs.cs
- XD.cs
- Pen.cs
- ArraySortHelper.cs
- Matrix.cs
- PropertyFilterAttribute.cs
- Conditional.cs
- WebPartConnectionsConnectVerb.cs
- RefreshPropertiesAttribute.cs
- CheckedListBox.cs
- DataListGeneralPage.cs
- SqlTypeSystemProvider.cs
- WindowsSpinner.cs
- RelOps.cs
- FilterElement.cs
- WebScriptServiceHost.cs
- EntityConnectionStringBuilderItem.cs
- TimeoutException.cs
- Vector3DAnimationBase.cs
- IIS7UserPrincipal.cs
- CreatingCookieEventArgs.cs
- OSEnvironmentHelper.cs
- FusionWrap.cs
- BitmapMetadataEnumerator.cs
- MouseCaptureWithinProperty.cs
- RootBuilder.cs
- FloatSumAggregationOperator.cs
- CursorInteropHelper.cs
- KeyValuePair.cs
- PersianCalendar.cs
- MonikerProxyAttribute.cs
- SqlClientMetaDataCollectionNames.cs
- JsonServiceDocumentSerializer.cs
- TextEditorParagraphs.cs
- RuntimeIdentifierPropertyAttribute.cs
- LinkButton.cs
- XsdValidatingReader.cs
- ReflectTypeDescriptionProvider.cs
- DataGridViewRowCancelEventArgs.cs
- DelegateBodyWriter.cs
- ConversionContext.cs
- FixedDSBuilder.cs
- GetImportedCardRequest.cs
- CatalogPartChrome.cs