diff --git a/src/OrchardCore/OrchardCore.Abstractions/Json/Dynamic/JsonDynamicObject.cs b/src/OrchardCore/OrchardCore.Abstractions/Json/Dynamic/JsonDynamicObject.cs index 432285a9b97..69b443facfb 100644 --- a/src/OrchardCore/OrchardCore.Abstractions/Json/Dynamic/JsonDynamicObject.cs +++ b/src/OrchardCore/OrchardCore.Abstractions/Json/Dynamic/JsonDynamicObject.cs @@ -148,6 +148,7 @@ public void SetValue(string key, object? value) return; } } + public override string ToString() => _jsonObject.ToJsonString(); public static implicit operator JsonObject(JsonDynamicObject value) => value._jsonObject; diff --git a/src/OrchardCore/OrchardCore.ContentManagement.Abstractions/ContentItemExtensions.cs b/src/OrchardCore/OrchardCore.ContentManagement.Abstractions/ContentItemExtensions.cs index d0ce29c42d2..57578c76a2b 100644 --- a/src/OrchardCore/OrchardCore.ContentManagement.Abstractions/ContentItemExtensions.cs +++ b/src/OrchardCore/OrchardCore.ContentManagement.Abstractions/ContentItemExtensions.cs @@ -1,4 +1,5 @@ using System; +using System.Text.Json.Dynamic; using System.Text.Json.Nodes; using System.Text.Json.Settings; using System.Threading.Tasks; @@ -230,5 +231,14 @@ public static ContentItem Merge(this ContentItem contentItem, object properties, return contentItem; } + + public static ContentItem ToContentItem(this JsonDynamicObject jsonDynamic) + { + var contentItem = new ContentItem(); + var contentProperties = jsonDynamic.ToString(); + contentItem.Merge(JObject.Parse(contentProperties)); + + return contentItem; + } } }