Как правильно добавить связанные элементы в список уже существующих связанных элементов с помощью Kentico Cloud Management API - PullRequest
1 голос
/ 24 июня 2019

В Kentico Cloud я получил Предмет, который содержит список связанных предметов.Однако этот список следует редактировать извне с помощью Kentico Cloud Management API.Есть ли способ просто добавить элемент в этот список, не обновляя весь список?

Я работаю с Kentico Cloud SDK в C # и до сих пор пробовал использовать языковой вариант с новым массивом.ContentItemIdentifier.byId, но всякий раз, когда я вызываю его, он перезаписывает мой уже существующий список.

private async Task AddOrderToDay(string orderItemExternalId, Guid dayId)
{
    ContentItemVariantIdentifier ident = new ContentItemVariantIdentifier(
        ContentItemIdentifier.ById(dayId),
        LanguageIdentifier.DEFAULT_LANGUAGE);

    UpdateOrdersDay update = new UpdateOrdersDay
    {
        Orders = 
           new[]{ContentItemIdentifier.ByExternalId(orderItemExternalId)}
    };

    ContentItemVariantModel<UpdateOrdersDay> response =
        await this._cmclient.UpsertContentItemVariantAsync(ident, update);
}

Я ожидаю, что мой новый элемент будет добавлен в существующий список элементов в облаке.

В данный момент он просто перезаписывает их.Я попробовал обходной путь: я вызываю Api доставки, чтобы получить текущие Предметы и добавить их в новый new [] {old1, old2, new ItemIdentifier}.Однако это решение не очень производительно.

1 Ответ

0 голосов
/ 16 июля 2019

В настоящее время CM API (включая v2) не поддерживает добавление / удаление связанных элементов по одному.

То, что вы делаете в настоящее время, является наиболее эффективным способом получения элементов из API доставки, а не из API CM.

Это может измениться в будущем, но сейчас вам нужно выполнить этот дополнительный запрос перед сохранением элемента.

...