From af070a743f60adb1ecbdc40468898fb2ebe210c8 Mon Sep 17 00:00:00 2001 From: Rick Butterfield Date: Mon, 25 Mar 2024 13:41:19 +0000 Subject: [PATCH] v1.8.3 --- .github/README.md | 4 ++-- VERSION | 2 +- .../Extensions/StringExtensions.cs | 21 +++++++++++-------- .../Services/BackOfficePreviewServiceBase.cs | 20 +++++++++--------- .../Umbraco.Community.BlockPreview.csproj | 2 +- 5 files changed, 26 insertions(+), 23 deletions(-) diff --git a/.github/README.md b/.github/README.md index 51a64fb..23be89c 100644 --- a/.github/README.md +++ b/.github/README.md @@ -14,13 +14,13 @@ The Umbraco 10.4+ version of this package is [available via NuGet](https://www.n To install the package, you can use either .NET CLI: ``` -dotnet add package Umbraco.Community.BlockPreview --version 1.8.2 +dotnet add package Umbraco.Community.BlockPreview --version 1.8.3 ``` or the older NuGet Package Manager: ``` -Install-Package Umbraco.Community.BlockPreview -Version 1.8.2 +Install-Package Umbraco.Community.BlockPreview -Version 1.8.3 ``` ### Setup diff --git a/VERSION b/VERSION index 0bfbd57..fe4e75f 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.8.2 \ No newline at end of file +1.8.3 \ No newline at end of file diff --git a/src/Umbraco.Community.BlockPreview/Extensions/StringExtensions.cs b/src/Umbraco.Community.BlockPreview/Extensions/StringExtensions.cs index a2d5768..7082739 100644 --- a/src/Umbraco.Community.BlockPreview/Extensions/StringExtensions.cs +++ b/src/Umbraco.Community.BlockPreview/Extensions/StringExtensions.cs @@ -17,23 +17,26 @@ public static string ToPascalCase(this string value) return $"{char.ToUpper(value[0], CultureInfo.CurrentCulture)}{value[1..]}"; } - public static bool TryConvertToGridItem(this object? rawPropValue, out BlockValue value) + + public static bool TryConvertToGridItem(this object? rawPropValue, out BlockValue? value) { - if (!rawPropValue.ToString()?.DetectIsJson() == true || rawPropValue is not JObject jObject) + if (!rawPropValue?.ToString()?.DetectIsJson() == true || rawPropValue is not JObject jObject) { - value = default(BlockValue); + value = default; return false; } + var keys = jObject.Properties().Select(x => x.Name); - if (keys.Contains(nameof(BlockValue.Layout), StringComparer.InvariantCultureIgnoreCase) - || keys.Contains(nameof(BlockValue.ContentData), StringComparer.InvariantCultureIgnoreCase) - || keys.Contains(nameof(BlockValue.SettingsData), StringComparer.InvariantCultureIgnoreCase)) - { - value = JsonConvert.DeserializeObject(rawPropValue.ToString()); + if (keys.Contains(nameof(BlockValue.Layout), StringComparer.InvariantCultureIgnoreCase) || + keys.Contains(nameof(BlockValue.ContentData), StringComparer.InvariantCultureIgnoreCase) || + keys.Contains(nameof(BlockValue.SettingsData), StringComparer.InvariantCultureIgnoreCase)) + { + value = JsonConvert.DeserializeObject(rawPropValue?.ToString()); return true; } - value = default(BlockValue); + + value = default; return false; } } \ No newline at end of file diff --git a/src/Umbraco.Community.BlockPreview/Services/BackOfficePreviewServiceBase.cs b/src/Umbraco.Community.BlockPreview/Services/BackOfficePreviewServiceBase.cs index 97c9301..96883b3 100644 --- a/src/Umbraco.Community.BlockPreview/Services/BackOfficePreviewServiceBase.cs +++ b/src/Umbraco.Community.BlockPreview/Services/BackOfficePreviewServiceBase.cs @@ -9,7 +9,6 @@ using Microsoft.AspNetCore.Routing; using Microsoft.Extensions.Options; using Newtonsoft.Json; -using Newtonsoft.Json.Linq; using System.Text.Encodings.Web; using Umbraco.Cms.Core; using Umbraco.Cms.Core.Composing; @@ -54,22 +53,22 @@ public BackOfficePreviewServiceBase( _options = options.Value; } - public virtual void ConvertNestedValuesToString(BlockItemData? contentData) + public virtual void ConvertNestedValuesToString(BlockItemData? blockData) { - if (contentData == null) + if (blockData == null) return; - foreach (var rawPropValue in contentData.RawPropertyValues.Where(x => x.Value != null)) + foreach (var rawPropValue in blockData.RawPropertyValues.Where(x => x.Value != null)) { var originalValue = rawPropValue.Value; - if (originalValue.TryConvertToGridItem(out var blockValue)) + if (originalValue.TryConvertToGridItem(out BlockValue? blockValue)) { - blockValue.ContentData.ForEach(ConvertNestedValuesToString); - blockValue.SettingsData.ForEach(ConvertNestedValuesToString); - contentData.RawPropertyValues[rawPropValue.Key] = JsonConvert.SerializeObject(blockValue); + blockValue?.ContentData.ForEach(ConvertNestedValuesToString); + blockValue?.SettingsData.ForEach(ConvertNestedValuesToString); + blockData.RawPropertyValues[rawPropValue.Key] = JsonConvert.SerializeObject(blockValue); continue; } - contentData.RawPropertyValues[rawPropValue.Key] = originalValue.ToString(); + blockData.RawPropertyValues[rawPropValue.Key] = originalValue?.ToString(); } } public virtual IPublishedElement? ConvertToElement(BlockItemData data, bool throwOnError) @@ -87,7 +86,8 @@ public virtual void ConvertNestedValuesToString(BlockItemData? contentData) public virtual ViewDataDictionary CreateViewData(object? typedBlockInstance) { - var viewData = new ViewDataDictionary(new EmptyModelMetadataProvider(), new ModelStateDictionary()) { + var viewData = new ViewDataDictionary(new EmptyModelMetadataProvider(), new ModelStateDictionary()) + { Model = typedBlockInstance }; diff --git a/src/Umbraco.Community.BlockPreview/Umbraco.Community.BlockPreview.csproj b/src/Umbraco.Community.BlockPreview/Umbraco.Community.BlockPreview.csproj index 0d079a6..a50514a 100644 --- a/src/Umbraco.Community.BlockPreview/Umbraco.Community.BlockPreview.csproj +++ b/src/Umbraco.Community.BlockPreview/Umbraco.Community.BlockPreview.csproj @@ -16,7 +16,7 @@ Umbraco.Community.BlockPreview True - 1.8.2 + 1.8.3 Rick Butterfield, Dave Woestenborghs, Matthew Wise $([System.DateTime]::UtcNow.ToString(`yyyy`)) © Rick Butterfield