CardComponentHelperExtendRequestAsyncTRequest, TResponse, TContext, TExtension - метод

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

Definition

Пространство имён: Tessa.Cards.ComponentModel
Сборка: Tessa (в Tessa.dll) Версия: 3.6.0.22
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  FuncIExtensionExecutorTExtension, CancellationToken, TaskTResponse
Функция, которая принимает объект, выполняющий расширения, осуществляет запрос к API карточек и возвращает ответ.
beforeRequestExpression  ExpressionExtensionMethodReferenceAsyncTExtension, TContext
Выражение, ссылающееся на цепочку расширений, выполняемых перед запросом к API карточек.
afterRequestExpression  ExpressionExtensionMethodReferenceAsyncTExtension, TContext
Выражение, ссылающееся на цепочку расширений, выполняемых после запроса к API карточек.
afterRequestFinallyExpression  ExpressionExtensionMethodReferenceAsyncTExtension, TContext  (Optional)
Выражение, ссылающееся на цепочку расширений, выполняемых при возникновении исключения на любом моменте выполнения (включая цепочку beforeRequestExpression) или после расширений afterRequestExpression в случае отсутствия исключений. Любые исключения, возникающие в этих расширениях, не приводят к прекращению выполнения цепочки (последующие расширения выполняются). При этом все исключения, кроме OperationCanceledException, логируются в результате валидации.
coerceContextActionAsync  FuncTContext, TResponse, CancellationToken, ValueTask  (Optional)
Метод, выполняющий корректировку контекста перед вызовом цепочки расширений afterRequestExpression, или null, если корректировка не требуется.
cancellationToken  CancellationToken  (Optional)
Объект, посредством которого можно отменить асинхронную задачу.

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

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

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

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

См. также