public 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
)
Public Function ResolveGroupAsync (
card As Card,
groupsToAdd As ListStorage(Of CardTaskHistoryGroup),
allGroups As IReadOnlyCollection(Of CardTaskHistoryGroup),
validationResult As IValidationResultBuilder,
groupTypeID As Guid,
Optional parentGroupTypeID As Guid? = Nothing,
Optional newIteration As Boolean = false,
Optional placeholderContext As Object = Nothing,
Optional cardHasNoSections As Boolean = false,
Optional noCardInDb As Boolean = false,
Optional cancellationToken As CancellationToken = Nothing
) As ValueTask(Of CardTaskHistoryGroup)
public:
virtual ValueTask<CardTaskHistoryGroup^> ResolveGroupAsync(
Card^ card,
ListStorage<CardTaskHistoryGroup^>^ groupsToAdd,
IReadOnlyCollection<CardTaskHistoryGroup^>^ allGroups,
IValidationResultBuilder^ validationResult,
Guid groupTypeID,
Nullable<Guid> parentGroupTypeID = nullptr,
bool newIteration = false,
Object^ placeholderContext = nullptr,
bool cardHasNoSections = false,
bool noCardInDb = false,
CancellationToken cancellationToken = CancellationToken()
) sealed
abstract ResolveGroupAsync :
card : Card *
groupsToAdd : ListStorage<CardTaskHistoryGroup> *
allGroups : IReadOnlyCollection<CardTaskHistoryGroup> *
validationResult : IValidationResultBuilder *
groupTypeID : Guid *
?parentGroupTypeID : Nullable<Guid> *
?newIteration : bool *
?placeholderContext : Object *
?cardHasNoSections : bool *
?noCardInDb : bool *
?cancellationToken : CancellationToken
(* Defaults:
let _parentGroupTypeID = defaultArg parentGroupTypeID null
let _newIteration = defaultArg newIteration false
let _placeholderContext = defaultArg placeholderContext null
let _cardHasNoSections = defaultArg cardHasNoSections false
let _noCardInDb = defaultArg noCardInDb false
let _cancellationToken = defaultArg cancellationToken new CancellationToken()
*)
-> ValueTask<CardTaskHistoryGroup>
override ResolveGroupAsync :
card : Card *
groupsToAdd : ListStorage<CardTaskHistoryGroup> *
allGroups : IReadOnlyCollection<CardTaskHistoryGroup> *
validationResult : IValidationResultBuilder *
groupTypeID : Guid *
?parentGroupTypeID : Nullable<Guid> *
?newIteration : bool *
?placeholderContext : Object *
?cardHasNoSections : bool *
?noCardInDb : bool *
?cancellationToken : CancellationToken
(* Defaults:
let _parentGroupTypeID = defaultArg parentGroupTypeID null
let _newIteration = defaultArg newIteration false
let _placeholderContext = defaultArg placeholderContext null
let _cardHasNoSections = defaultArg cardHasNoSections false
let _noCardInDb = defaultArg noCardInDb false
let _cancellationToken = defaultArg cancellationToken new CancellationToken()
*)
-> ValueTask<CardTaskHistoryGroup>
Список групп, в которые будет произведено добавление строки с группой для карточки card. Также по этому списку будет определено, требуется ли создать группу или использовать существующую, в дополнение к списку allGroups.
Обычно в этом параметре указывается card.TaskHistoryGroups, если карточка card будет сохранена с новыми группами. Возможны сценарии, когда карточка card используется как загруженная карточка для плейсхолдеров, а карточка для сохранения содержится в отдельном объекте, от которого требуется указать свойство card.TaskHistoryGroups в этом параметре.
Полный список групп в истории заданий для карточки card. По этому списку будет определено, требуется ли создать группу или использовать существующую, но в случае создания группа будет добавлена не в эту коллекцию, а в коллекцию groupsToAdd. Первичный поиск будет выполнен по коллекции groupsToAdd, чтобы учитывать добавленные группы.
В следующем сценарии вы можете передать значение свойства card.TaskHistoryGroups в этот параметр: карточка полностью загружается, для неё добавляются строки в историю заданий, а потом для неё же вызывается метод card.RemoveAllButChanged() и выполняется сохранение.
Идентификатор типа родительской группы.
Если родительская группа указана, то будет выбрана родительская группа заданного типа с наибольшей итерацией.
Если родительская группа отсутствует, то она будет создана.
Признак того, что метод всегда добавляет итерацию для группы типа groupTypeID.
Если указано true, то метод создаёт новый экземпляр группы как при её существовании (тогда увеличивается номер итерации), так и при её отсутствии (тогда указывается итерация номер 1).
Если указано false, то метод возвращает экземпляр группы без его создания, если группа заданного типа была найдена (возвращается группа с наибольшей итерацией); если же группа не найдена, то также создаётся экземпляр группы с итерацией номер 1.