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

CardExtensionHelperFixUniqueIdentifiersAsync - метод

Исправляет список уникальных ссылок, задаваемых идентификаторами любого типа в полях из списка identifierFieldNames в списке полей rows. Под уникальностью ссылки подразумевается, что в одну и ту же карточку не может быть добавлено более одной ссылки с одним и тем же идентификатором. Возвращает признак того, что была найдена хотя бы одна строка-дубликат. Если задано removeDuplicates как false, то дубликаты не удаляются.

Пространство имён:  Tessa.Cards.Extensions
Сборка:  Tessa (в Tessa.dll) Версия: 3.5.0.19
Синтаксис
public static ValueTask<bool> FixUniqueIdentifiersAsync(
	ListStorage<CardRow> rows,
	string[] identifierFieldNames,
	string parentIdentifierFieldName = null,
	string orderFieldName = null,
	bool removeDuplicates = true,
	Func<IList<CardRow>, CardRow, CancellationToken, ValueTask> removeRowFuncAsync = null,
	CancellationToken cancellationToken = default
)

Параметры

rows
Тип: Tessa.Platform.StorageListStorageCardRow
Список строк. Может быть обычной карточкой, файлов или заданием.
identifierFieldNames
Тип: SystemString
Список имён полей в строках rows, которые содержат идентификаторы любого типа, уникальность которых требуется обеспечить в пределах списка строк, в т.ч. родительские идентификаторы.
parentIdentifierFieldName (Optional)
Тип: SystemString
Имя поля в строках rows, которое содержит идентификатор для связи с родительской строкой (ParentRowID), у которых обычно указан флажок "Is reference to owner". Эти идентификаторы позволяют найти строки в пределах одной родительской строки при удалении дубликатов. Может быть указан null или пустая строка, если строки rows не принадлежат дочерней секции.
orderFieldName (Optional)
Тип: SystemString
Имя поля для сортировки в строках rows или null, если поле не задано.
removeDuplicates (Optional)
Тип: SystemBoolean
Признак того, что строки-дубликаты должны быть удалены. Используйте false, чтобы найти строки, но не удалять их.
removeRowFuncAsync (Optional)
Тип: SystemFuncIListCardRow, CardRow, CancellationToken, ValueTask
Функция, выполняющая удаление указанной строки из коллекции строк, или null, если строка удаляется обычным образом. Переопределять удаление имеет смысл на клиенте, где также требуется удалить дочерние строки из структуры карточки.
cancellationToken (Optional)
Тип: System.ThreadingCancellationToken
Объект, посредством которого можно отменить асинхронную задачу.

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

Тип: ValueTaskBoolean
true, если была найдена хотя бы одна строка-дубликат; false в противном случае.
Заметки

Метод гарантирует, что если пользователь удалит и тут же добавит строку с таким же идентификатором, то удалённая не будет удалена, а новая строка не будет добавлена.

Рекомендуется использовать метод в случае, если в секции есть необходимые уникальные индексы.

См. также