diff --git a/Kontent.Ai.Delivery/ContentItems/Elements/CustomElementValue.cs b/Kontent.Ai.Delivery/ContentItems/Elements/CustomElementValue.cs new file mode 100644 index 00000000..2055240a --- /dev/null +++ b/Kontent.Ai.Delivery/ContentItems/Elements/CustomElementValue.cs @@ -0,0 +1,7 @@ +namespace Kontent.Ai.Delivery.ContentItems.Elements +{ + internal class CustomElementValue : StringElementValue + { + + } +} diff --git a/Kontent.Ai.Delivery/ContentItems/Elements/MultipleChoiceElementValue.cs b/Kontent.Ai.Delivery/ContentItems/Elements/MultipleChoiceElementValue.cs new file mode 100644 index 00000000..a1cb92e3 --- /dev/null +++ b/Kontent.Ai.Delivery/ContentItems/Elements/MultipleChoiceElementValue.cs @@ -0,0 +1,10 @@ +using System.Collections.Generic; +using Kontent.Ai.Delivery.Abstractions; + +namespace Kontent.Ai.Delivery.ContentItems.Elements +{ + internal class MultipleChoiceElementValue: ContentElementValue> + { + + } +} \ No newline at end of file diff --git a/Kontent.Ai.Delivery/ContentItems/Elements/StringElementValue.cs b/Kontent.Ai.Delivery/ContentItems/Elements/StringElementValue.cs index 68f35928..f60b40f5 100644 --- a/Kontent.Ai.Delivery/ContentItems/Elements/StringElementValue.cs +++ b/Kontent.Ai.Delivery/ContentItems/Elements/StringElementValue.cs @@ -1,6 +1,6 @@ namespace Kontent.Ai.Delivery.ContentItems.Elements { - internal class StringElementValue : ContentElementValue + internal abstract class StringElementValue : ContentElementValue { } } \ No newline at end of file diff --git a/Kontent.Ai.Delivery/ContentItems/Elements/TextElementValue.cs b/Kontent.Ai.Delivery/ContentItems/Elements/TextElementValue.cs new file mode 100644 index 00000000..efc3addb --- /dev/null +++ b/Kontent.Ai.Delivery/ContentItems/Elements/TextElementValue.cs @@ -0,0 +1,7 @@ +namespace Kontent.Ai.Delivery.ContentItems.Elements +{ + internal class TextElementValue : StringElementValue + { + + } +} diff --git a/Kontent.Ai.Delivery/ContentItems/Elements/UrlSlugElementValue.cs b/Kontent.Ai.Delivery/ContentItems/Elements/UrlSlugElementValue.cs new file mode 100644 index 00000000..f132304c --- /dev/null +++ b/Kontent.Ai.Delivery/ContentItems/Elements/UrlSlugElementValue.cs @@ -0,0 +1,7 @@ +namespace Kontent.Ai.Delivery.ContentItems.Elements +{ + internal class UrlSlugElementValue : StringElementValue + { + + } +} diff --git a/Kontent.Ai.Delivery/ContentItems/ModelProvider.cs b/Kontent.Ai.Delivery/ContentItems/ModelProvider.cs index e406a5b2..9d915b43 100644 --- a/Kontent.Ai.Delivery/ContentItems/ModelProvider.cs +++ b/Kontent.Ai.Delivery/ContentItems/ModelProvider.cs @@ -237,14 +237,16 @@ private ContentItemElements GetAllPropertiesValuesAsync(JObject elementsData, Pr "rich_text" => element.ToObject(Serializer), "asset" => element.ToObject(Serializer), "number" => element.ToObject(Serializer), - // TODO do we want to use string/structured data for date time + // TODO do we want to use string/structured data for date time => structured is OK "date_time" => element.ToObject(Serializer), - "multiple_choice" => element.ToObject>>(Serializer), - "taxonomy" => element.ToObject>>(Serializer), + "multiple_choice" => element.ToObject(Serializer), + "taxonomy" => element.ToObject(Serializer), + // TODO what Linked items + what SubPages? "modular_content" => element.ToObject>>(Serializer), - // TODO do we need to split this into UrlSlugElementValue/CustomElementValue/TextElementValue => Custom value has Searchable value => split to more classes - // Custom element, text element, URL slug element - _ => element.ToObject(Serializer) + "custom_element" => element.ToObject(Serializer), + "url_slug" => element.ToObject(Serializer), + "text" => element.ToObject(Serializer), + _ => throw new ArgumentException($"Argument type {element["type"].ToString()} not supported.") }; // TODO Fix the empty Codename? Probably yes (wrap ToObject with normalization logic)