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
- BoundsDrawingContextWalker.cs
- RoleGroup.cs
- ResourceDisplayNameAttribute.cs
- Queue.cs
- StorageFunctionMapping.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- ADMembershipProvider.cs
- TextRange.cs
- PersistenceProviderDirectory.cs
- IriParsingElement.cs
- METAHEADER.cs
- WebPartConnectionsCloseVerb.cs
- UIntPtr.cs
- CompositionTarget.cs
- XmlUtil.cs
- WebPartDescriptionCollection.cs
- WindowsIPAddress.cs
- diagnosticsswitches.cs
- CellParagraph.cs
- ObjectDataSourceStatusEventArgs.cs
- DesignerForm.cs
- HttpCacheVary.cs
- DecoderNLS.cs
- PrimitiveCodeDomSerializer.cs
- Operators.cs
- CodeMemberProperty.cs
- TagMapCollection.cs
- Model3DGroup.cs
- RegexCompilationInfo.cs
- ListViewCancelEventArgs.cs
- AccessorTable.cs
- RegistryExceptionHelper.cs
- RawKeyboardInputReport.cs
- DrawingContextDrawingContextWalker.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- AnnotationDocumentPaginator.cs
- TagPrefixAttribute.cs
- XmlSchemaAttributeGroupRef.cs
- StrokeNodeEnumerator.cs
- AssemblyAttributesGoHere.cs
- LockCookie.cs
- DynamicRendererThreadManager.cs
- DbProviderFactoriesConfigurationHandler.cs
- PanningMessageFilter.cs
- DesignerAttribute.cs
- SQLMembershipProvider.cs
- FieldNameLookup.cs
- FieldDescriptor.cs
- OpenTypeCommon.cs
- EmitterCache.cs
- ToolStripItemEventArgs.cs
- BitmapSourceSafeMILHandle.cs
- path.cs
- SqlClientFactory.cs
- SessionPageStateSection.cs
- UntypedNullExpression.cs
- DataGridViewSelectedRowCollection.cs
- Memoizer.cs
- DataGridViewSortCompareEventArgs.cs
- RecommendedAsConfigurableAttribute.cs
- ConsumerConnectionPointCollection.cs
- RelatedEnd.cs
- XmlILModule.cs
- XPathBinder.cs
- mactripleDES.cs
- DoubleAnimation.cs
- DrawingCollection.cs
- EventSetter.cs
- XmlSchemaSimpleTypeUnion.cs
- PageParser.cs
- InfocardClientCredentials.cs
- StreamUpdate.cs
- ConfigurationManager.cs
- RowVisual.cs
- SqlWorkflowPersistenceService.cs
- ModifiableIteratorCollection.cs
- XmlSchemaValidationException.cs
- FormViewInsertEventArgs.cs
- PackageStore.cs
- ValidatingPropertiesEventArgs.cs
- StoreContentChangedEventArgs.cs
- OleDbWrapper.cs
- JsonServiceDocumentSerializer.cs
- SqlConnection.cs
- DesignerActionVerbList.cs
- GetTokenRequest.cs
- Scalars.cs
- UInt32.cs
- ListBoxItemWrapperAutomationPeer.cs
- SSmlParser.cs
- HintTextConverter.cs
- SafeCryptoHandles.cs
- Menu.cs
- SelectingProviderEventArgs.cs
- DirectoryObjectSecurity.cs
- ToolStripPanelSelectionBehavior.cs
- UpdatePanelControlTrigger.cs
- TimeSpanMinutesOrInfiniteConverter.cs
- RequestCacheManager.cs
- CommandManager.cs