Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WF / RunTime / Hosting / WorkflowTransactionService.cs / 1305376 / WorkflowTransactionService.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- #region Using directives using System; using System.Transactions; #endregion namespace System.Workflow.Runtime.Hosting { public abstract class WorkflowCommitWorkBatchService : WorkflowRuntimeService { public delegate void CommitWorkBatchCallback(); virtual internal protected void CommitWorkBatch(CommitWorkBatchCallback commitWorkBatchCallback) { Transaction tx = null; if (null == Transaction.Current) tx = new CommittableTransaction(); else tx = Transaction.Current.DependentClone(DependentCloneOption.BlockCommitUntilComplete); try { using (TransactionScope ts = new TransactionScope(tx)) { commitWorkBatchCallback(); ts.Complete(); } CommittableTransaction committableTransaction = tx as CommittableTransaction; if (committableTransaction != null) committableTransaction.Commit(); DependentTransaction dependentTransaction = tx as DependentTransaction; if (dependentTransaction != null) dependentTransaction.Complete(); } catch (Exception e) { tx.Rollback(e); throw; } finally { if (tx != null) { tx.Dispose(); } } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- #region Using directives using System; using System.Transactions; #endregion namespace System.Workflow.Runtime.Hosting { public abstract class WorkflowCommitWorkBatchService : WorkflowRuntimeService { public delegate void CommitWorkBatchCallback(); virtual internal protected void CommitWorkBatch(CommitWorkBatchCallback commitWorkBatchCallback) { Transaction tx = null; if (null == Transaction.Current) tx = new CommittableTransaction(); else tx = Transaction.Current.DependentClone(DependentCloneOption.BlockCommitUntilComplete); try { using (TransactionScope ts = new TransactionScope(tx)) { commitWorkBatchCallback(); ts.Complete(); } CommittableTransaction committableTransaction = tx as CommittableTransaction; if (committableTransaction != null) committableTransaction.Commit(); DependentTransaction dependentTransaction = tx as DependentTransaction; if (dependentTransaction != null) dependentTransaction.Complete(); } catch (Exception e) { tx.Rollback(e); throw; } finally { if (tx != null) { tx.Dispose(); } } } } } // 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
- IteratorFilter.cs
- InternalPermissions.cs
- WorkflowMarkupSerializationManager.cs
- FacetValues.cs
- BrowserTree.cs
- DocumentReferenceCollection.cs
- RootProfilePropertySettingsCollection.cs
- _CommandStream.cs
- Latin1Encoding.cs
- URIFormatException.cs
- SoapReflectionImporter.cs
- WriteableOnDemandStream.cs
- SafeBitVector32.cs
- Stacktrace.cs
- Converter.cs
- VisualBrush.cs
- UnknownBitmapEncoder.cs
- OracleException.cs
- ImageMap.cs
- X509WindowsSecurityToken.cs
- SectionInput.cs
- IPGlobalProperties.cs
- filewebrequest.cs
- SetStoryboardSpeedRatio.cs
- DataBoundControlHelper.cs
- RuntimeEnvironment.cs
- XNodeNavigator.cs
- Gdiplus.cs
- LineUtil.cs
- XmlSchemaException.cs
- ObjectHandle.cs
- SqlRowUpdatedEvent.cs
- ToolStripRenderer.cs
- MetabaseReader.cs
- BuildProviderAppliesToAttribute.cs
- ZipIOCentralDirectoryFileHeader.cs
- DataGridItemEventArgs.cs
- EdmItemCollection.cs
- RegexWorker.cs
- GeometryHitTestParameters.cs
- AnnotationComponentManager.cs
- ObjectItemCollection.cs
- TracePayload.cs
- FaultFormatter.cs
- GregorianCalendar.cs
- CompilerError.cs
- UnauthorizedAccessException.cs
- HtmlTableRow.cs
- WebPartMinimizeVerb.cs
- HtmlEmptyTagControlBuilder.cs
- RetrieveVirtualItemEventArgs.cs
- AnnotationHighlightLayer.cs
- Menu.cs
- ListControl.cs
- XamlPoint3DCollectionSerializer.cs
- BoundingRectTracker.cs
- XmlSchemaObjectTable.cs
- StatusBarItem.cs
- ConvertersCollection.cs
- XamlStream.cs
- ChangeToolStripParentVerb.cs
- Point.cs
- ToolBarButtonClickEvent.cs
- BindingValueChangedEventArgs.cs
- TypeDescriptor.cs
- ListBase.cs
- KeyboardDevice.cs
- HttpRequest.cs
- ToolboxComponentsCreatingEventArgs.cs
- ItemList.cs
- VirtualDirectoryMapping.cs
- RC2CryptoServiceProvider.cs
- PropertyTabChangedEvent.cs
- SqlErrorCollection.cs
- SendMailErrorEventArgs.cs
- XamlDesignerSerializationManager.cs
- HtmlFormWrapper.cs
- SafeTimerHandle.cs
- GeometryConverter.cs
- Invariant.cs
- AndAlso.cs
- BindingSource.cs
- WebPartCloseVerb.cs
- SettingsAttributes.cs
- WebBrowserProgressChangedEventHandler.cs
- MessageDecoder.cs
- util.cs
- AstNode.cs
- RoleManagerModule.cs
- ServiceOperation.cs
- WorkflowDataContext.cs
- DesignerSerializerAttribute.cs
- ExpressionBindingCollection.cs
- ProvidersHelper.cs
- TextSearch.cs
- ChannelEndpointElement.cs
- OneOfElement.cs
- ReachNamespaceInfo.cs
- RuleInfoComparer.cs
- InvalidOleVariantTypeException.cs