e79aa3c0ed
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
164 lines
9.7 KiB
C#
164 lines
9.7 KiB
C#
//-----------------------------------------------------------------------------
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
//-----------------------------------------------------------------------------
|
|
|
|
namespace System.ServiceModel.Activities
|
|
{
|
|
using System.Collections.Generic;
|
|
using System.Runtime;
|
|
using System.Activities;
|
|
using System.ServiceModel;
|
|
using System.ServiceModel.Activities.Description;
|
|
|
|
[WorkflowContractBehaviorAttribute]
|
|
[ServiceContract(Name = XD2.WorkflowInstanceManagementService.ContractName, Namespace = XD2.WorkflowServices.Namespace)]
|
|
public interface IWorkflowInstanceManagement
|
|
{
|
|
// Non-Transacted operations
|
|
[OperationContract(Name = XD2.WorkflowInstanceManagementService.Abandon)]
|
|
[Fx.Tag.Throws(typeof(FaultException), "Instance not found")]
|
|
void Abandon(Guid instanceId, string reason);
|
|
|
|
[OperationContract(Name = XD2.WorkflowInstanceManagementService.Abandon, AsyncPattern = true)]
|
|
[Fx.Tag.InheritThrows(From = "Abandon")]
|
|
IAsyncResult BeginAbandon(Guid instanceId, string reason, AsyncCallback callback, object state);
|
|
[Fx.Tag.InheritThrows(From = "Abandon")]
|
|
void EndAbandon(IAsyncResult result);
|
|
|
|
[OperationContract(Name = XD2.WorkflowInstanceManagementService.Cancel)]
|
|
[Fx.Tag.Throws(typeof(FaultException), "Instance with specified identifier not found or it is supended or locked under transaction")]
|
|
void Cancel(Guid instanceId);
|
|
|
|
[OperationContract(Name = XD2.WorkflowInstanceManagementService.Cancel, AsyncPattern = true)]
|
|
[Fx.Tag.InheritThrows(From = "Cancel")]
|
|
IAsyncResult BeginCancel(Guid instanceId, AsyncCallback callback, object state);
|
|
[Fx.Tag.InheritThrows(From = "Cancel")]
|
|
void EndCancel(IAsyncResult result);
|
|
|
|
[OperationContract(Name = XD2.WorkflowInstanceManagementService.Run)]
|
|
[Fx.Tag.Throws(typeof(FaultException), "Instance with specified identifier not found or it is locked under transaction")]
|
|
void Run(Guid instanceId);
|
|
|
|
[OperationContract(Name = XD2.WorkflowInstanceManagementService.Run, AsyncPattern = true)]
|
|
[Fx.Tag.InheritThrows(From = "Run")]
|
|
IAsyncResult BeginRun(Guid instanceId, AsyncCallback callback, object state);
|
|
[Fx.Tag.InheritThrows(From = "Run")]
|
|
void EndRun(IAsyncResult result);
|
|
|
|
[OperationContract(Name = XD2.WorkflowInstanceManagementService.Suspend)]
|
|
[Fx.Tag.Throws(typeof(FaultException), "Instance with specified identifier not found or it is locked under transaction")]
|
|
void Suspend(Guid instanceId, string reason);
|
|
|
|
[OperationContract(Name = XD2.WorkflowInstanceManagementService.Suspend, AsyncPattern = true)]
|
|
[Fx.Tag.InheritThrows(From = "Suspend")]
|
|
IAsyncResult BeginSuspend(Guid instanceId, string reason, AsyncCallback callback, object state);
|
|
[Fx.Tag.InheritThrows(From = "Suspend")]
|
|
void EndSuspend(IAsyncResult result);
|
|
|
|
[OperationContract(Name = XD2.WorkflowInstanceManagementService.Terminate)]
|
|
[Fx.Tag.Throws(typeof(FaultException), "Instance with specified identifier not found or it is supended or locked under transaction")]
|
|
void Terminate(Guid instanceId, string reason);
|
|
|
|
[OperationContract(Name = XD2.WorkflowInstanceManagementService.Terminate, AsyncPattern = true)]
|
|
[Fx.Tag.InheritThrows(From = "Terminate")]
|
|
IAsyncResult BeginTerminate(Guid instanceId, string reason, AsyncCallback callback, object state);
|
|
[Fx.Tag.InheritThrows(From = "Terminate")]
|
|
void EndTerminate(IAsyncResult result);
|
|
|
|
[OperationContract(Name = XD2.WorkflowInstanceManagementService.Unsuspend)]
|
|
[Fx.Tag.Throws(typeof(FaultException), "Instance with specified identifier not found or it is locked under transaction")]
|
|
void Unsuspend(Guid instanceId);
|
|
|
|
[OperationContract(Name = XD2.WorkflowInstanceManagementService.Unsuspend, AsyncPattern = true)]
|
|
[Fx.Tag.InheritThrows(From = "Unsuspend")]
|
|
IAsyncResult BeginUnsuspend(Guid instanceId, AsyncCallback callback, object state);
|
|
[Fx.Tag.InheritThrows(From = "Unsuspend")]
|
|
void EndUnsuspend(IAsyncResult result);
|
|
|
|
//Transacted Operation
|
|
// TODO, 21237, Post One-Way Tx flow support below operations should be changed to Oneway.
|
|
|
|
[OperationContract(Name = XD2.WorkflowInstanceManagementService.TransactedCancel)]
|
|
[TransactionFlow(TransactionFlowOption.Allowed)]
|
|
[Fx.Tag.Throws(typeof(FaultException), "Instance with specified identifier not found or it is supended or locked under transaction")]
|
|
void TransactedCancel(Guid instanceId);
|
|
|
|
[OperationContract(Name = XD2.WorkflowInstanceManagementService.TransactedCancel, AsyncPattern = true)]
|
|
[Fx.Tag.InheritThrows(From = "TransactedCancel")]
|
|
IAsyncResult BeginTransactedCancel(Guid instanceId, AsyncCallback callback, object state);
|
|
[Fx.Tag.InheritThrows(From = "TransactedCancel")]
|
|
void EndTransactedCancel(IAsyncResult result);
|
|
|
|
[OperationContract(Name = XD2.WorkflowInstanceManagementService.TransactedRun)]
|
|
[TransactionFlow(TransactionFlowOption.Allowed)]
|
|
[Fx.Tag.Throws(typeof(FaultException), "Instance with specified identifier not found or it is supended or locked under transaction")]
|
|
void TransactedRun(Guid instanceId);
|
|
|
|
[OperationContract(Name = XD2.WorkflowInstanceManagementService.TransactedRun, AsyncPattern = true)]
|
|
[Fx.Tag.InheritThrows(From = "TransactedRun")]
|
|
IAsyncResult BeginTransactedRun(Guid instanceId, AsyncCallback callback, object state);
|
|
[Fx.Tag.InheritThrows(From = "TransactedRun")]
|
|
void EndTransactedRun(IAsyncResult result);
|
|
|
|
[OperationContract(Name = XD2.WorkflowInstanceManagementService.TransactedSuspend)]
|
|
[TransactionFlow(TransactionFlowOption.Allowed)]
|
|
[Fx.Tag.Throws(typeof(FaultException), "Instance with specified identifier not found or it is supended or locked under transaction")]
|
|
void TransactedSuspend(Guid instanceId, string reason);
|
|
|
|
[OperationContract(AsyncPattern = true, Name = XD2.WorkflowInstanceManagementService.TransactedSuspend)]
|
|
[Fx.Tag.InheritThrows(From = "TransactedSuspend")]
|
|
IAsyncResult BeginTransactedSuspend(Guid instanceId, string reason, AsyncCallback callback, object state);
|
|
[Fx.Tag.InheritThrows(From = "TransactedSuspend")]
|
|
void EndTransactedSuspend(IAsyncResult result);
|
|
|
|
[OperationContract(Name = XD2.WorkflowInstanceManagementService.TransactedTerminate)]
|
|
[TransactionFlow(TransactionFlowOption.Allowed)]
|
|
[Fx.Tag.Throws(typeof(FaultException), "Instance with specified identifier not found or it is supended or locked under transaction")]
|
|
void TransactedTerminate(Guid instanceId, string reason);
|
|
|
|
[OperationContract(AsyncPattern = true, Name = XD2.WorkflowInstanceManagementService.TransactedTerminate)]
|
|
[Fx.Tag.InheritThrows(From = "TransactedTerminate")]
|
|
IAsyncResult BeginTransactedTerminate(Guid instanceId, string reason, AsyncCallback callback, object state);
|
|
[Fx.Tag.InheritThrows(From = "TransactedTerminate")]
|
|
void EndTransactedTerminate(IAsyncResult result);
|
|
|
|
[OperationContract(Name = XD2.WorkflowInstanceManagementService.TransactedUnsuspend)]
|
|
[TransactionFlow(TransactionFlowOption.Allowed)]
|
|
[Fx.Tag.Throws(typeof(FaultException), "Instance with specified identifier not found or it is locked under a transaction")]
|
|
void TransactedUnsuspend(Guid instanceId);
|
|
|
|
[OperationContract(AsyncPattern = true, Name = XD2.WorkflowInstanceManagementService.TransactedUnsuspend)]
|
|
[Fx.Tag.InheritThrows(From = "TransactedUnsuspend")]
|
|
IAsyncResult BeginTransactedUnsuspend(Guid instanceId, AsyncCallback callback, object state);
|
|
[Fx.Tag.InheritThrows(From = "TransactedUnsuspend")]
|
|
void EndTransactedUnsuspend(IAsyncResult result);
|
|
}
|
|
|
|
[WorkflowContractBehaviorAttribute]
|
|
[ServiceContract(Name = XD2.WorkflowInstanceManagementService.ContractName, Namespace = XD2.WorkflowServices.Namespace,
|
|
ConfigurationName = XD2.WorkflowInstanceManagementService.ConfigurationName)]
|
|
public interface IWorkflowUpdateableInstanceManagement : IWorkflowInstanceManagement
|
|
{
|
|
[OperationContract(Name = XD2.WorkflowInstanceManagementService.Update)]
|
|
[Fx.Tag.Throws(typeof(FaultException), "Instance not found, locked under transaction, or update unsuccessful")]
|
|
void Update(Guid instanceId, WorkflowIdentity updatedDefinitionIdentity);
|
|
|
|
[OperationContract(AsyncPattern = true, Name = XD2.WorkflowInstanceManagementService.Update)]
|
|
[Fx.Tag.InheritThrows(From = "Update")]
|
|
IAsyncResult BeginUpdate(Guid instanceId, WorkflowIdentity updatedDefinitionIdentity, AsyncCallback callback, object state);
|
|
[Fx.Tag.InheritThrows(From = "Update")]
|
|
void EndUpdate(IAsyncResult result);
|
|
|
|
[OperationContract(Name = XD2.WorkflowInstanceManagementService.TransactedUpdate)]
|
|
[TransactionFlow(TransactionFlowOption.Allowed)]
|
|
[Fx.Tag.Throws(typeof(FaultException), "Instance not found, locked under transaction, or update unsuccessful")]
|
|
void TransactedUpdate(Guid instanceId, WorkflowIdentity updatedDefinitionIdentity);
|
|
|
|
[OperationContract(AsyncPattern = true, Name = XD2.WorkflowInstanceManagementService.TransactedUpdate)]
|
|
[Fx.Tag.InheritThrows(From = "TransactedUpdate")]
|
|
IAsyncResult BeginTransactedUpdate(Guid instanceId, WorkflowIdentity updatedDefinitionIdentity, AsyncCallback callback, object state);
|
|
[Fx.Tag.InheritThrows(From = "TransactedUpdate")]
|
|
void EndTransactedUpdate(IAsyncResult result);
|
|
}
|
|
}
|