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
)
Public Shared Function FixUniqueIdentifiersAsync (
rows As ListStorage(Of CardRow),
identifierFieldNames As String(),
Optional parentIdentifierFieldName As String = Nothing,
Optional orderFieldName As String = Nothing,
Optional removeDuplicates As Boolean = true,
Optional removeRowFuncAsync As Func(Of IList(Of CardRow), CardRow, CancellationToken, ValueTask) = Nothing,
Optional cancellationToken As CancellationToken = Nothing
) As ValueTask(Of Boolean)
public:
static ValueTask<bool> FixUniqueIdentifiersAsync(
ListStorage<CardRow^>^ rows,
array<String^>^ identifierFieldNames,
String^ parentIdentifierFieldName = nullptr,
String^ orderFieldName = nullptr,
bool removeDuplicates = true,
Func<IList<CardRow^>^, CardRow^, CancellationToken, ValueTask>^ removeRowFuncAsync = nullptr,
CancellationToken cancellationToken = CancellationToken()
)
static member FixUniqueIdentifiersAsync :
rows : ListStorage<CardRow> *
identifierFieldNames : string[] *
?parentIdentifierFieldName : string *
?orderFieldName : string *
?removeDuplicates : bool *
?removeRowFuncAsync : Func<IList<CardRow>, CardRow, CancellationToken, ValueTask> *
?cancellationToken : CancellationToken
(* Defaults:
let _parentIdentifierFieldName = defaultArg parentIdentifierFieldName null
let _orderFieldName = defaultArg orderFieldName null
let _removeDuplicates = defaultArg removeDuplicates true
let _removeRowFuncAsync = defaultArg removeRowFuncAsync null
let _cancellationToken = defaultArg cancellationToken new CancellationToken()
*)
-> ValueTask<bool>
Параметры
- 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
Объект, посредством которого можно отменить асинхронную задачу.
Возвращаемое значение
Тип:
ValueTaskBooleantrue, если была найдена хотя бы одна строка-дубликат;
false в противном случае.
Заметки Метод гарантирует, что если пользователь удалит и тут же добавит строку с таким же идентификатором,
то удалённая не будет удалена, а новая строка не будет добавлена.
Рекомендуется использовать метод в случае, если в секции есть необходимые уникальные индексы.
См. также