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

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

Definition

Пространство имён: Tessa.Cards.ComponentModel
Сборка: Tessa (в Tessa.dll) Версия: 4.0.4
C#
public static Task<TResponse> ExtendRequestAsync<TRequest, TResponse, TContext, TExtension>(
	Object? validationObject,
	IExtensionContainer extensionContainer,
	TContext context,
	Func<IExtensionExecutor, TContext, CancellationToken, Task<TResponse>> performRequestFuncAsync,
	string beforeRequestMethodName,
	string afterRequestMethodName,
	string? afterRequestFinallyMethodName = null,
	Func<TContext, TResponse, CancellationToken, ValueTask>? coerceContextActionAsync = null,
	Func<IExtensionExecutor, TContext, CancellationToken, Task>? beforePerformRequestActionAsync = 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  FuncIExtensionExecutor, TContext, CancellationToken, TaskTResponse
Функция, которая принимает объект, выполняющий расширения, осуществляет запрос к API карточек и возвращает ответ.
beforeRequestMethodName  String
Имя метода для цепочки расширений, выполняемых перед запросом к API карточек.
afterRequestMethodName  String
Имя метода для цепочки расширений, выполняемых после запроса к API карточек.
afterRequestFinallyMethodName  String  (Optional)
Имя метода для цепочки расширений, выполняемых при возникновении исключения на любом моменте выполнения (включая цепочку beforeRequestMethodName) или после расширений afterRequestMethodName в случае отсутствия исключений. Любые исключения, возникающие в этих расширениях, не приводят к прекращению выполнения цепочки (последующие расширения выполняются). При этом все исключения, кроме OperationCanceledException, логируются в результате валидации.
coerceContextActionAsync  FuncTContext, TResponse, CancellationToken, ValueTask  (Optional)
Метод, выполняющий корректировку контекста перед вызовом цепочки расширений afterRequestMethodName, или null, если корректировка не требуется.
beforePerformRequestActionAsync  FuncIExtensionExecutor, TContext, CancellationToken, Task  (Optional)
Действие, выполняемое после beforeRequestMethodName и перед performRequestFuncAsync. При этом не происходит проверка наличия результата и его валидности.
cancellationToken  CancellationToken  (Optional)
Propagates notification that operations should be canceled.

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

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

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

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

См. также