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
- XmlSchemaImport.cs
- SelectionItemPattern.cs
- CellParagraph.cs
- TaskResultSetter.cs
- SqlDependencyUtils.cs
- PropertyChangedEventArgs.cs
- SrgsRuleRef.cs
- _HeaderInfoTable.cs
- SynchronizedRandom.cs
- BasicBrowserDialog.cs
- JapaneseLunisolarCalendar.cs
- DataSourceSelectArguments.cs
- EdmProperty.cs
- CodeLabeledStatement.cs
- hresults.cs
- MasterPageCodeDomTreeGenerator.cs
- ManagementBaseObject.cs
- FixedSOMPage.cs
- AsymmetricKeyExchangeDeformatter.cs
- ObjectStateFormatter.cs
- MarkupObject.cs
- RectAnimationClockResource.cs
- EventLogEntryCollection.cs
- RemoteArgument.cs
- InstanceStore.cs
- TypeElementCollection.cs
- CrossContextChannel.cs
- configsystem.cs
- ControlCachePolicy.cs
- Char.cs
- _Semaphore.cs
- RawStylusInputCustomDataList.cs
- TextEditorTables.cs
- AnimationClockResource.cs
- OlePropertyStructs.cs
- FixedSOMImage.cs
- HierarchicalDataSourceControl.cs
- XmlComment.cs
- ResourcePool.cs
- MenuAdapter.cs
- PropertyDescriptors.cs
- FileSystemWatcher.cs
- ListViewEditEventArgs.cs
- MatrixTransform.cs
- XmlConvert.cs
- ToolStripPanel.cs
- IPAddress.cs
- ListenerAdapterBase.cs
- HitTestWithPointDrawingContextWalker.cs
- TextElementCollectionHelper.cs
- BaseProcessor.cs
- DBCommand.cs
- DnsPermission.cs
- DeflateEmulationStream.cs
- ExpressionConverter.cs
- InvalidEnumArgumentException.cs
- _HeaderInfoTable.cs
- BufferedStream.cs
- FaultCallbackWrapper.cs
- Model3DGroup.cs
- MemberInfoSerializationHolder.cs
- TextTreeRootTextBlock.cs
- ClientFormsIdentity.cs
- XPathBinder.cs
- KeyedCollection.cs
- Mappings.cs
- MimeTypeAttribute.cs
- DataGridPageChangedEventArgs.cs
- ImageSource.cs
- HitTestResult.cs
- DataBoundControlHelper.cs
- UInt64Storage.cs
- AdapterUtil.cs
- GraphicsPath.cs
- CheckBoxDesigner.cs
- SecurityResources.cs
- XPathPatternParser.cs
- PbrsForward.cs
- XmlArrayItemAttribute.cs
- Win32.cs
- ItemCheckEvent.cs
- PointCollectionConverter.cs
- CalendarDesigner.cs
- odbcmetadatacolumnnames.cs
- NetPeerTcpBinding.cs
- UrlMappingsModule.cs
- RIPEMD160Managed.cs
- UnionCodeGroup.cs
- WpfPayload.cs
- SqlConnectionStringBuilder.cs
- SqlCommand.cs
- RelOps.cs
- TripleDES.cs
- XmlSerializationWriter.cs
- Clipboard.cs
- InternalPermissions.cs
- ExpandableObjectConverter.cs
- FrameSecurityDescriptor.cs
- GACIdentityPermission.cs
- XamlTreeBuilderBamlRecordWriter.cs