CardWithoutTransactionStrategyExecuteInWriterLockAsync - метод
Выполняет запрос на изменение карточки внутри блокировки reader/writer и внутри транзакции.
Последним действием внутри делегата asyncAction должно быть увеличение номера версии карточки.
Пространство имён: Tessa.Cards.ComponentModelСборка: Tessa (в Tessa.dll) Версия: 3.6.0.22
public Task<bool> ExecuteInWriterLockAsync(
Guid cardID,
int version,
IValidationResultBuilder validationResult,
Func<ICardTransactionParameter, Task> asyncAction,
bool releaseLock = true,
CancellationToken cancellationToken = default
)
Public Function ExecuteInWriterLockAsync (
cardID As Guid,
version As Integer,
validationResult As IValidationResultBuilder,
asyncAction As Func(Of ICardTransactionParameter, Task),
Optional releaseLock As Boolean = true,
Optional cancellationToken As CancellationToken = Nothing
) As Task(Of Boolean)
public:
virtual Task<bool>^ ExecuteInWriterLockAsync(
Guid cardID,
int version,
IValidationResultBuilder^ validationResult,
Func<ICardTransactionParameter^, Task^>^ asyncAction,
bool releaseLock = true,
CancellationToken cancellationToken = CancellationToken()
) sealed
abstract ExecuteInWriterLockAsync :
cardID : Guid *
version : int *
validationResult : IValidationResultBuilder *
asyncAction : Func<ICardTransactionParameter, Task> *
?releaseLock : bool *
?cancellationToken : CancellationToken
(* Defaults:
let _releaseLock = defaultArg releaseLock true
let _cancellationToken = defaultArg cancellationToken new CancellationToken()
*)
-> Task<bool>
override ExecuteInWriterLockAsync :
cardID : Guid *
version : int *
validationResult : IValidationResultBuilder *
asyncAction : Func<ICardTransactionParameter, Task> *
?releaseLock : bool *
?cancellationToken : CancellationToken
(* Defaults:
let _releaseLock = defaultArg releaseLock true
let _cancellationToken = defaultArg cancellationToken new CancellationToken()
*)
-> Task<bool>
- cardID Guid
- Идентификатор карточки, для которой устанавливается блокировка.
- version Int32
-
Ожидаемая версия карточки в базе данных или [CardComponentHelper.DoNotCheckVersion],
если проверять версию не требуется.
- validationResult IValidationResultBuilder
- Объект, осуществляющий построение результата валидации.
- asyncAction FuncICardTransactionParameter, Task
-
Запрос на изменение карточки, принимающий параметр с информацией о транзакции,
которая включает токен отмены операции в свойстве CancellationToken. Исполняется внутри SQL-транзакции.
- releaseLock Boolean (Optional)
-
Признак того, что блокировку необходимо освободить при успешном завершении действий с карточкой.
Устанавливайте значение false только в случае, если карточка удалена к моменту освобождения блокировки.
В случае возникновения исключений блокировка будет снята в случае, если она была установлена,
независимо от значения этого параметра.
- cancellationToken CancellationToken (Optional)
- Объект, посредством которого можно отменить асинхронную задачу.
TaskBooleantrue, если запрос успешно завершился;
false, если в процессе создания транзакции или выполнения запроса произошло исключение,
причём произошёл откат начатой транзакции.
ICardTransactionStrategyExecuteInWriterLockAsync(Guid, Int32, IValidationResultBuilder, FuncICardTransactionParameter, Task, Boolean, CancellationToken)