Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx35 / System.WorkflowServices / System / ServiceModel / Dispatcher / WorkflowDurableInstance.cs / 1305376 / WorkflowDurableInstance.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel.Dispatcher { using System.Workflow.Runtime; using System.Runtime.Diagnostics; using System.ServiceModel.Diagnostics; using System.Diagnostics; class WorkflowDurableInstance : DurableInstance { WorkflowOperationAsyncResult currentOperationInvocation; WorkflowInstanceContextProvider instanceContextProvider; bool shouldCreateNew = false; object thisLock = new object(); WorkflowDefinitionContext workflowDefinition; WorkflowInstance workflowInstance = null; public WorkflowDurableInstance(WorkflowInstanceContextProvider instanceContextProvider, Guid instanceId, WorkflowDefinitionContext workflowDefinition, bool createNew) : base(instanceContextProvider, instanceId) { if (workflowDefinition == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("workflowDefinition"); } this.workflowDefinition = workflowDefinition; this.shouldCreateNew = createNew; this.instanceContextProvider = instanceContextProvider; } public WorkflowOperationAsyncResult CurrentOperationInvocation { get { return this.currentOperationInvocation; } set { this.currentOperationInvocation = value; } } public WorkflowInstance GetWorkflowInstance(bool canCreateInstance) { if (this.workflowInstance == null) { lock (thisLock) { if (shouldCreateNew) { if (canCreateInstance) { this.workflowInstance = this.workflowDefinition.CreateWorkflow(this.InstanceId); shouldCreateNew = false; if (DiagnosticUtility.ShouldTraceInformation) { string traceText = SR.GetString(SR.TraceCodeWorkflowDurableInstanceActivated, InstanceId); TraceUtility.TraceEvent(TraceEventType.Information, TraceCode.WorkflowDurableInstanceActivated, traceText, new StringTraceRecord("DurableInstanceDetail", traceText), this, null); } using (new WorkflowDispatchContext(true, true)) { this.workflowInstance.Start(); } } else { //Make sure we clean up this InstanceContext; DurableErrorHandler.CleanUpInstanceContextAtOperationCompletion(); //Inform InstanceLifeTimeManager to clean up record for InstanceId; if (this.instanceContextProvider.InstanceLifeTimeManager != null) { this.instanceContextProvider.InstanceLifeTimeManager.CleanUp(this.InstanceId); } throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new FaultException(new DurableDispatcherAddressingFault())); } } else { this.workflowInstance = this.workflowDefinition.WorkflowRuntime.GetWorkflow(InstanceId); if (DiagnosticUtility.ShouldTraceInformation) { string traceText = SR.GetString(SR.TraceCodeWorkflowDurableInstanceLoaded, InstanceId); TraceUtility.TraceEvent(TraceEventType.Information, TraceCode.WorkflowDurableInstanceLoaded, traceText, new StringTraceRecord("DurableInstanceDetail", traceText), this, null); } } } } return workflowInstance; } } } // 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
- CellRelation.cs
- SiteMapDataSource.cs
- ConfigUtil.cs
- Environment.cs
- DBDataPermissionAttribute.cs
- PerformanceCountersElement.cs
- UrlUtility.cs
- CollectionViewProxy.cs
- OverrideMode.cs
- PropertyMetadata.cs
- ObjectStateFormatter.cs
- DataFormats.cs
- Walker.cs
- BitmapScalingModeValidation.cs
- CodeNamespaceCollection.cs
- Label.cs
- SystemThemeKey.cs
- InternalCache.cs
- GenerateScriptTypeAttribute.cs
- OdbcConnectionHandle.cs
- HybridObjectCache.cs
- FileInfo.cs
- coordinator.cs
- FormsAuthenticationConfiguration.cs
- DataServiceConfiguration.cs
- UriGenerator.cs
- LogicalExpressionEditor.cs
- ListControl.cs
- DeferrableContent.cs
- OracleCommandSet.cs
- InternalConfigEventArgs.cs
- CompareValidator.cs
- JsonReaderWriterFactory.cs
- OleDbError.cs
- Message.cs
- Tracer.cs
- SetIndexBinder.cs
- MdiWindowListStrip.cs
- HttpFileCollectionBase.cs
- StateMachineHelpers.cs
- DataServiceHost.cs
- FileStream.cs
- TextFormatter.cs
- InvalidAsynchronousStateException.cs
- WebPartConnectVerb.cs
- OperationInvokerTrace.cs
- URI.cs
- ControlTemplate.cs
- DefinitionUpdate.cs
- ToolTip.cs
- CodeParameterDeclarationExpression.cs
- RelatedImageListAttribute.cs
- LockCookie.cs
- ScriptReferenceEventArgs.cs
- DecoratedNameAttribute.cs
- ValueConversionAttribute.cs
- DataRowChangeEvent.cs
- FileSystemEventArgs.cs
- SqlBulkCopyColumnMappingCollection.cs
- StringReader.cs
- ControlBuilderAttribute.cs
- ToolboxCategoryItems.cs
- Rotation3DAnimation.cs
- TagPrefixAttribute.cs
- LabelLiteral.cs
- ResourceReferenceExpression.cs
- StyleXamlTreeBuilder.cs
- AutoGeneratedField.cs
- InlineObject.cs
- ColorAnimation.cs
- CustomCredentialPolicy.cs
- PairComparer.cs
- ZipIOCentralDirectoryFileHeader.cs
- FormViewUpdatedEventArgs.cs
- AutomationPropertyInfo.cs
- WriteFileContext.cs
- ServiceHostingEnvironment.cs
- DescendantOverDescendantQuery.cs
- ParameterToken.cs
- HttpDictionary.cs
- WorkflowMarkupSerializationException.cs
- unsafenativemethodstextservices.cs
- InstanceDataCollection.cs
- PropertyContainer.cs
- XmlAutoDetectWriter.cs
- Rectangle.cs
- OdbcUtils.cs
- SlipBehavior.cs
- DllHostInitializer.cs
- DispatcherEventArgs.cs
- ProgressiveCrcCalculatingStream.cs
- RootBrowserWindowProxy.cs
- EntityDataSourceWizardForm.cs
- AsymmetricSignatureFormatter.cs
- DataGridViewDataErrorEventArgs.cs
- TextBoxView.cs
- TypedTableBaseExtensions.cs
- DynamicResourceExtensionConverter.cs
- SiteMapNode.cs
- OleDbConnectionPoolGroupProviderInfo.cs