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
- TextSelectionHighlightLayer.cs
- KerberosTokenFactoryCredential.cs
- OrthographicCamera.cs
- MetadataItemEmitter.cs
- AttributedMetaModel.cs
- DbUpdateCommandTree.cs
- MouseEventArgs.cs
- DbProviderFactories.cs
- GenericsNotImplementedException.cs
- UniqueConstraint.cs
- FileChangesMonitor.cs
- ObjectViewEntityCollectionData.cs
- XmlQueryCardinality.cs
- DesignSurfaceEvent.cs
- SmtpCommands.cs
- EventlogProvider.cs
- UriSection.cs
- CustomAttribute.cs
- AssemblyHash.cs
- BrowserTree.cs
- RectKeyFrameCollection.cs
- ButtonDesigner.cs
- CommonDialog.cs
- Array.cs
- Tuple.cs
- SwitchElementsCollection.cs
- ChannelCacheSettings.cs
- StreamMarshaler.cs
- ManifestSignedXml.cs
- EditingCoordinator.cs
- DependencyPropertyKey.cs
- smtppermission.cs
- GenericUriParser.cs
- LicenseManager.cs
- RepeaterItemEventArgs.cs
- ParamArrayAttribute.cs
- ClientViaElement.cs
- TableItemProviderWrapper.cs
- SystemNetHelpers.cs
- TriggerActionCollection.cs
- ResXBuildProvider.cs
- errorpatternmatcher.cs
- NativeRightsManagementAPIsStructures.cs
- ComponentCommands.cs
- Attributes.cs
- ClientUtils.cs
- shaper.cs
- MeasureData.cs
- ProviderSettings.cs
- ReceiveParametersContent.cs
- XmlTextEncoder.cs
- DataBinding.cs
- DataRecordObjectView.cs
- Assembly.cs
- NetPeerTcpBindingElement.cs
- ProviderCollection.cs
- CompositeScriptReferenceEventArgs.cs
- DragStartedEventArgs.cs
- HostingEnvironment.cs
- EventProviderBase.cs
- TypeLibConverter.cs
- HtmlElement.cs
- ColumnCollection.cs
- QueryPageSettingsEventArgs.cs
- DataGridView.cs
- Parameter.cs
- SettingsPropertyIsReadOnlyException.cs
- BmpBitmapDecoder.cs
- PersonalizationState.cs
- StructuralCache.cs
- XmlEntity.cs
- ToggleButton.cs
- MetadataCache.cs
- GetLastErrorDetailsRequest.cs
- SapiAttributeParser.cs
- Rectangle.cs
- CodeAttributeArgument.cs
- PropertyEntry.cs
- StringSource.cs
- Translator.cs
- XmlSchemaSimpleContentRestriction.cs
- ProgressBarRenderer.cs
- NaturalLanguageHyphenator.cs
- TrackingLocation.cs
- ActivityBindForm.cs
- ObfuscateAssemblyAttribute.cs
- AxisAngleRotation3D.cs
- DataPagerField.cs
- EventProviderClassic.cs
- ProviderMetadata.cs
- CheckBoxFlatAdapter.cs
- Tablet.cs
- SwitchCase.cs
- TypedReference.cs
- SharedDp.cs
- PipeStream.cs
- CellPartitioner.cs
- IpcChannel.cs
- SmiXetterAccessMap.cs
- MouseEvent.cs