From f751f89d89fd618d02b3c1be5af1341e3f0225bf Mon Sep 17 00:00:00 2001 From: malik masis Date: Wed, 15 Jun 2022 13:19:11 +0300 Subject: [PATCH] Converted ExtraProperties to a dynamic object --- .../Shared/Components/Pages/Default.cshtml | 25 +++++++++++++++---- .../Pages/Public/CmsKit/Blogs/BlogPost.cshtml | 24 ++++++++++++++---- 2 files changed, 39 insertions(+), 10 deletions(-) diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Pages/Default.cshtml b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Pages/Default.cshtml index 396628ae66..d79e809c47 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Pages/Default.cshtml +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Pages/Default.cshtml @@ -1,5 +1,6 @@ @addTagHelper *, Volo.Abp.AspNetCore.Mvc.UI.Bootstrap +@using System.Dynamic @using Volo.CmsKit.Public.Web.Renderers @using Volo.Abp.Data @using Volo.CmsKit.Contents @@ -18,12 +19,26 @@ } else if (contentFragment.Type == "Widget") //TODO: Constant { - @await Component.InvokeAsync(contentFragment.GetProperty("Type"), new - { - extraProperties = contentFragment.ExtraProperties - } - ) + @await Component.InvokeAsync(contentFragment.GetProperty("Type"), ConvertToDynamicObject(contentFragment.ExtraProperties)) } } + + +@{ + dynamic ConvertToDynamicObject(Dictionary dict) + { + var eo = new ExpandoObject(); + var eoColl = (ICollection>)eo; + + foreach (var kvp in dict) + { + eoColl.Add(kvp); + } + + dynamic eoDynamic = eo; + + return eoDynamic; + } +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/BlogPost.cshtml b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/BlogPost.cshtml index eac43e41fc..b7ead0592a 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/BlogPost.cshtml +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/BlogPost.cshtml @@ -1,5 +1,6 @@ @page +@using System.Dynamic @using Volo.Abp.Data @using Volo.CmsKit.Public.Blogs @using Volo.CmsKit.Public.Web.Pages.CmsKit.Shared.Components.Blogs.BlogPostComment @@ -75,11 +76,7 @@ } else if (contentFragment.Type == "Widget") //TODO: Constant { - @await Component.InvokeAsync(contentFragment.GetProperty("Type"), new - { - extraProperties = contentFragment.ExtraProperties - } - ) + @await Component.InvokeAsync(contentFragment.GetProperty("Type"), ConvertToDynamicObject(contentFragment.ExtraProperties)) } }

@@ -167,4 +164,21 @@ entityId = Model.BlogPost.Id.ToString() }) } +} + +@{ + dynamic ConvertToDynamicObject(Dictionary dict) + { + var eo = new ExpandoObject(); + var eoColl = (ICollection>)eo; + + foreach (var kvp in dict) + { + eoColl.Add(kvp); + } + + dynamic eoDynamic = eo; + + return eoDynamic; + } } \ No newline at end of file