ICardTransactionStrategyExecuteInWriterLockAsync - метод

Выполняет запрос на изменение карточки внутри блокировки reader/writer и внутри транзакции. Последним действием внутри делегата asyncAction должно быть увеличение номера версии карточки.

Definition

Пространство имён: Tessa.Cards.ComponentModel
Сборка: Tessa (в Tessa.dll) Версия: 3.6.0.22
C#
Task<bool> ExecuteInWriterLockAsync(
	Guid cardID,
	int version,
	IValidationResultBuilder validationResult,
	Func<ICardTransactionParameter, Task> asyncAction,
	bool releaseLock = true,
	CancellationToken cancellationToken = default
)

Параметры

cardID  Guid
Идентификатор карточки, для которой устанавливается блокировка.
version  Int32
Ожидаемая версия карточки в базе данных или [CardComponentHelper.DoNotCheckVersion], если проверять версию не требуется.
validationResult  IValidationResultBuilder
Объект, осуществляющий построение результата валидации.
asyncAction  FuncICardTransactionParameter, Task
Запрос на изменение карточки, принимающий параметр с информацией о транзакции, которая включает токен отмены операции в свойстве CancellationToken. Исполняется внутри SQL-транзакции.
releaseLock  Boolean  (Optional)
Признак того, что блокировку необходимо освободить при успешном завершении действий с карточкой. Устанавливайте значение false только в случае, если карточка удалена к моменту освобождения блокировки. В случае возникновения исключений блокировка будет снята в случае, если она была установлена, независимо от значения этого параметра.
cancellationToken  CancellationToken  (Optional)
Объект, посредством которого можно отменить асинхронную задачу.

Возвращаемое значение

TaskBoolean
true, если запрос успешно завершился; false, если в процессе создания транзакции или выполнения запроса произошло исключение, причём произошёл откат начатой транзакции.

См. также