CardComponentHelper.ExtendRequestAsync<TRequest, TResponse, TContext, TExtension> - метод

Дополняет запрос к API карточек цепочками расширений.

Definition

Пространство имён: Tessa.Cards.ComponentModel
Сборка: Tessa (в Tessa.dll) Версия: 3.6.0.23
C#
public static Task<TResponse> ExtendRequestAsync<TRequest, TResponse, TContext, TExtension>(
	Object validationObject,
	IExtensionContainer extensionContainer,
	TContext context,
	Func<IExtensionExecutor<TExtension>, CancellationToken, Task<TResponse>> performRequestFuncAsync,
	Expression<ExtensionMethodReferenceAsync<TExtension, TContext>> beforeRequestExpression,
	Expression<ExtensionMethodReferenceAsync<TExtension, TContext>> afterRequestExpression,
	Expression<ExtensionMethodReferenceAsync<TExtension, TContext>> afterRequestFinallyExpression = null,
	Func<TContext, TResponse, CancellationToken, ValueTask> coerceContextActionAsync = null,
	CancellationToken cancellationToken = default
)
where TRequest : CardInfoStorageObject
where TResponse : new(), CardResponseBase
where TContext : CardExtensionContext, ICardRequestExtensionContext<TRequest, TResponse>
where TExtension : class, ICardExtension

Параметры

validationObject  Object
Объект, от имени которого выполняется валидация.
extensionContainer  IExtensionContainer
Контейнер, содержащий зарегистрированные расширения.
context  TContext
Контекст, передаваемый между расширениями в цепочке.
performRequestFuncAsync  Func<IExtensionExecutor<TExtension>, CancellationToken, Task<TResponse>>
Функция, которая принимает объект, выполняющий расширения, осуществляет запрос к API карточек и возвращает ответ.
beforeRequestExpression  Expression<ExtensionMethodReferenceAsync<TExtension, TContext>>
Выражение, ссылающееся на цепочку расширений, выполняемых перед запросом к API карточек.
afterRequestExpression  Expression<ExtensionMethodReferenceAsync<TExtension, TContext>>
Выражение, ссылающееся на цепочку расширений, выполняемых после запроса к API карточек.
afterRequestFinallyExpression  Expression<ExtensionMethodReferenceAsync<TExtension, TContext>>  (Optional)
Выражение, ссылающееся на цепочку расширений, выполняемых при возникновении исключения на любом моменте выполнения (включая цепочку beforeRequestExpression) или после расширений afterRequestExpression в случае отсутствия исключений. Любые исключения, возникающие в этих расширениях, не приводят к прекращению выполнения цепочки (последующие расширения выполняются). При этом все исключения, кроме OperationCanceledException, логируются в результате валидации.
coerceContextActionAsync  Func<TContext, TResponse, CancellationToken, ValueTask>  (Optional)
Метод, выполняющий корректировку контекста перед вызовом цепочки расширений afterRequestExpression, или null, если корректировка не требуется.
cancellationToken  CancellationToken  (Optional)
Объект, посредством которого можно отменить асинхронную задачу.

Параметры типа

TRequest
Тип запроса к API карточек. Должен быть унаследован от класса CardInfoStorageObject.
TResponse
Тип ответа на запрос к API карточек. Должен быть унаследован от класса CardResponseBase и иметь открытый конструктор по умолчанию.
TContext
Тип контекста, используемого в расширениях. Должен быть унаследован от класса CardExtensionContext, и должен реализовывать интерфейс ICardRequestExtensionContext<TRequest, TResponse>.
TExtension
Ссылочный тип расширений. Должен реализовывать интерфейс ICardExtension.

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

Task<TResponse>
Ответ на запрос к API карточек, который мог быть изменён цепочками расширений.

См. также