Для информации я установил свежую новую версию Kentico v12 и использую базовый шаблон козла.
У меня есть список продуктов в веб-сервисе (это мой источник правды), который яхотел бы внедрить в бэк-офис Kentico.
Продукты, полученные от веб-службы, связаны с языком, на котором они переведены.Если у меня есть 2 языка, скажем, голландский и французский, я получу каждый продукт 2 раза.
Практический пример:
Допустим, мой веб-сервис имеет только 1 продукт, но распознает 2 языка, когда япотреблять его я получу 2 продукта.
- ProductId: 1, язык: NL, имя: NameTranslatedInDutch
- ProductId: 1, язык: FR, имя: NameTranslatedInFrench
Моим идентификатором, который позволяет мне сгруппировать их, является поле "ProductId"
Для создания новой версии моего продукта для культуры я использую метод "InsertAsNewCultureVersion" из TreeNode.
Когда я его выполняю, я получаю эту ошибку:
Мой код:
// I search all documents related to the ProductId received from the webservice
var document = DocumentHelper
.GetDocuments()
.OnSite("Goat")
.Culture(facet.Language)
.Path("/", PathTypeEnum.Children)
.Where(
new WhereCondition(
"DocumentName",
QueryOperator.Equals,
facet.ProductId))
.FirstOrDefault();
// If it already exists I only have to update it
if (document != null)
{
UpdateProductTreeNode(facet, document);
}
// Otherwise i need to insert a new culture version
else
{
// I search for the first possible version for my product
var baseDocument = (SKUTreeNode)DocumentHelper
.GetDocuments()
.OnSite("Goat")
.Path("/", PathTypeEnum.Children)
.Where(
new WhereCondition(
"DocumentName",
QueryOperator.Equals,
facet.ProductId))
.FirstOrDefault();
// I'm sure it's not null, i've already checked it above but didn't copy/paste this part
baseDocument.InsertAsNewCultureVersion(facet.Language, true); // Exception occurs here
var newDocument = DocumentHelper
.GetDocuments()
.OnSite("Goat")
.Culture(facet.Language)
.Path("/", PathTypeEnum.Children)
.Where(
new WhereCondition(
"DocumentName",
QueryOperator.Equals,
facet.ProductId))
.FirstOrDefault();
UpdateProductTreeNode(facet, newDocument);
}
Я что-то не так делаю?Должен ли я сделать это по-другому?
К сожалению, обновление структуры данных, полученных от веб-службы, не вариант.
Качество моего кода не очень хорошее, но оно не актуально,Я делаю проверку концепции, качество будет улучшено, как только я буду уверен, что это работает ^^
Я следовал этим урокам: