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
- Select.cs
- AlternateViewCollection.cs
- Metafile.cs
- CodeTypeReference.cs
- WorkflowPersistenceService.cs
- WebRequestModuleElementCollection.cs
- FacetDescription.cs
- SQLUtility.cs
- ListItemParagraph.cs
- BaseValidator.cs
- StateChangeEvent.cs
- storepermissionattribute.cs
- FormParameter.cs
- ConversionValidationRule.cs
- SqlBulkCopy.cs
- TextTreeUndo.cs
- ControlPropertyNameConverter.cs
- SiteMapPath.cs
- QuaternionRotation3D.cs
- TextContainerChangedEventArgs.cs
- Hex.cs
- PathFigureCollection.cs
- Int16KeyFrameCollection.cs
- HandlerWithFactory.cs
- FlowPosition.cs
- DrawingContextWalker.cs
- FormatConvertedBitmap.cs
- DecimalAnimation.cs
- StringCollectionMarkupSerializer.cs
- GroupQuery.cs
- DbgUtil.cs
- XmlHelper.cs
- PngBitmapEncoder.cs
- SQLBytes.cs
- ApplicationSecurityManager.cs
- BindingsSection.cs
- ProvideValueServiceProvider.cs
- DataServiceHost.cs
- CryptographicAttribute.cs
- TextModifier.cs
- HtmlTableRow.cs
- UIServiceHelper.cs
- SchemaComplexType.cs
- COM2ExtendedBrowsingHandler.cs
- FontEmbeddingManager.cs
- Error.cs
- CollectionViewGroupInternal.cs
- CommonDialog.cs
- InvalidComObjectException.cs
- CreateRefExpr.cs
- AdornerLayer.cs
- FontStretchConverter.cs
- CodeArgumentReferenceExpression.cs
- AppSettingsExpressionBuilder.cs
- SQLSingleStorage.cs
- ToolStripSystemRenderer.cs
- TableStyle.cs
- XPathNodePointer.cs
- EntityViewGenerationAttribute.cs
- EventBuilder.cs
- EntityException.cs
- DbConnectionInternal.cs
- ToolStripSplitButton.cs
- StateInitializationDesigner.cs
- ServiceAuthorizationManager.cs
- RuleConditionDialog.Designer.cs
- UpdateTracker.cs
- VirtualizingStackPanel.cs
- ChangeBlockUndoRecord.cs
- TripleDES.cs
- DomainUpDown.cs
- ResourceDescriptionAttribute.cs
- VoiceSynthesis.cs
- EditorZone.cs
- Char.cs
- IncrementalHitTester.cs
- QueryAccessibilityHelpEvent.cs
- Directory.cs
- AspNetHostingPermission.cs
- OperatingSystem.cs
- HttpListenerResponse.cs
- PerfCounters.cs
- BezierSegment.cs
- EventBindingService.cs
- HeaderUtility.cs
- NotifyCollectionChangedEventArgs.cs
- Int32Rect.cs
- AesManaged.cs
- CodeAttributeArgument.cs
- ErrorLog.cs
- MissingMemberException.cs
- processwaithandle.cs
- FileNameEditor.cs
- CollectionView.cs
- PathFigureCollectionConverter.cs
- TimerTable.cs
- DaylightTime.cs
- StandardCommands.cs
- RemotingException.cs
- MultiPropertyDescriptorGridEntry.cs