CardExtensionHelperFixUniqueIdentifiersAsync - метод

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

Definition

Пространство имён: Tessa.Cards.Extensions
Сборка: Tessa (в Tessa.dll) Версия: 3.6.0.22
C#
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  ListStorageCardRow
Список строк. Может быть обычной карточкой, файлов или заданием.
identifierFieldNames  String
Список имён полей в строках rows, которые содержат идентификаторы любого типа, уникальность которых требуется обеспечить в пределах списка строк, в т.ч. родительские идентификаторы.
parentIdentifierFieldName  String  (Optional)
Имя поля в строках rows, которое содержит идентификатор для связи с родительской строкой (ParentRowID), у которых обычно указан флажок "Is reference to owner". Эти идентификаторы позволяют найти строки в пределах одной родительской строки при удалении дубликатов. Может быть указан null или пустая строка, если строки rows не принадлежат дочерней секции.
orderFieldName  String  (Optional)
Имя поля для сортировки в строках rows или null, если поле не задано.
removeDuplicates  Boolean  (Optional)
Признак того, что строки-дубликаты должны быть удалены. Используйте false, чтобы найти строки, но не удалять их.
removeRowFuncAsync  FuncIListCardRow, CardRow, CancellationToken, ValueTask  (Optional)
Функция, выполняющая удаление указанной строки из коллекции строк, или null, если строка удаляется обычным образом. Переопределять удаление имеет смысл на клиенте, где также требуется удалить дочерние строки из структуры карточки.
cancellationToken  CancellationToken  (Optional)
Объект, посредством которого можно отменить асинхронную задачу.

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

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

Заметки

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

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

См. также