Для изменения размера нажмите или перетащите

ICardTaskHistoryManagerResolveGroupAsync - метод

Возвращает группу в истории заданий, вычисленную для заданных параметров. При необходимости группа будет создана. Также может быть создана родительская группа, если указан её тип, но в карточке она отсутствует.

Пространство имён:  Tessa.Cards
Сборка:  Tessa (в Tessa.dll) Версия: 3.5.0.19
Синтаксис
ValueTask<CardTaskHistoryGroup> ResolveGroupAsync(
	Card card,
	ListStorage<CardTaskHistoryGroup> groupsToAdd,
	IReadOnlyCollection<CardTaskHistoryGroup> allGroups,
	IValidationResultBuilder validationResult,
	Guid groupTypeID,
	Guid? parentGroupTypeID = null,
	bool newIteration = false,
	Object placeholderContext = null,
	bool cardHasNoSections = false,
	bool noCardInDb = false,
	CancellationToken cancellationToken = default
)

Параметры

card
Тип: Tessa.CardsCard
Карточка, для истории заданий в которой создаётся группа. В карточке достаточно наличие идентификатора, а секции требуются только при указании параметра cardHasNoSections, равного false. В этот объект карточки будут добавлены группы истории заданий.
groupsToAdd
Тип: Tessa.Platform.StorageListStorageCardTaskHistoryGroup

Список групп, в которые будет произведено добавление строки с группой для карточки card. Также по этому списку будет определено, требуется ли создать группу или использовать существующую, в дополнение к списку allGroups.

Обычно в этом параметре указывается card.TaskHistoryGroups, если карточка card будет сохранена с новыми группами. Возможны сценарии, когда карточка card используется как загруженная карточка для плейсхолдеров, а карточка для сохранения содержится в отдельном объекте, от которого требуется указать свойство card.TaskHistoryGroups в этом параметре.

allGroups
Тип: System.Collections.GenericIReadOnlyCollectionCardTaskHistoryGroup

Полный список групп в истории заданий для карточки card. По этому списку будет определено, требуется ли создать группу или использовать существующую, но в случае создания группа будет добавлена не в эту коллекцию, а в коллекцию groupsToAdd. Первичный поиск будет выполнен по коллекции groupsToAdd, чтобы учитывать добавленные группы.

В следующем сценарии вы можете передать значение свойства card.TaskHistoryGroups в этот параметр: карточка полностью загружается, для неё добавляются строки в историю заданий, а потом для неё же вызывается метод card.RemoveAllButChanged() и выполняется сохранение.

validationResult
Тип: Tessa.Platform.ValidationIValidationResultBuilder
Результат валидации, содержащий информацию по проблемам, возникшим при вычислении названия группы Caption (при замене плейсхолдеров). Вычисление названия группы выполняется при добавлении группы, а также при добавлении родительской группы.
groupTypeID
Тип: SystemGuid
Идентификатор типа группы, которую требуется найти или добавить. Информация по уже существующим группам определяется из карточки card.
parentGroupTypeID (Optional)
Тип: SystemNullableGuid

Идентификатор типа родительской группы.

Если родительская группа указана, то будет выбрана родительская группа заданного типа с наибольшей итерацией.

Если родительская группа отсутствует, то она будет создана.

newIteration (Optional)
Тип: SystemBoolean

Признак того, что метод всегда добавляет итерацию для группы типа groupTypeID.

Если указано true, то метод создаёт новый экземпляр группы как при её существовании (тогда увеличивается номер итерации), так и при её отсутствии (тогда указывается итерация номер 1).

Если указано false, то метод возвращает экземпляр группы без его создания, если группа заданного типа была найдена (возвращается группа с наибольшей итерацией); если же группа не найдена, то также создаётся экземпляр группы с итерацией номер 1.

placeholderContext (Optional)
Тип: SystemObject
Объект внешнего контекста, передаваемый в плейсхолдеры при формировании названия экземпляра группы (в т.ч. родительской группы). Название формируется только при добавлении соответствующей группы. Если задано null, то в контекст плейсхолдеров не передаётся такой контекст.
cardHasNoSections (Optional)
Тип: SystemBoolean
Признак того, что карточка card не содержит секций для плейсхолдеров, поэтому плейсхолдеры, использующие строковые и коллекционные секции карточки, будут запрашивать их из базы данных по идентификатору карточки. Если также указан параметр noCardInDb, равный true, то такие плейсхолдеры не будут возвращать данных.
noCardInDb (Optional)
Тип: SystemBoolean
Признак того, что карточка card по соответствующему идентификатору отсутствует в базе данных (например, карточка ещё не создана или карточка является виртуальной), поэтому при замене плейсхолдеров не будут генерироваться SQL-запросы (не будет возможности выполнять объединение с данными других таблиц).
cancellationToken (Optional)
Тип: System.ThreadingCancellationToken
Объект, посредством которого можно отменить асинхронную задачу.

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

Тип: ValueTaskCardTaskHistoryGroup
Созданная или найденная строка с информацией по группе в истории заданий, которая соответствует переданным параметрами, или null, если не удалось создать группу (например, ошибки в плейсхолдерах в карточке типа группы). Возникшие ошибки и предупреждения будут содержаться в объекте validationResult.
См. также