From 338bbdd3825f89b9c5e6835313c8012be2b80b9a Mon Sep 17 00:00:00 2001 From: Mole Date: Tue, 21 Dec 2021 10:36:25 +0100 Subject: [PATCH] Reintroduce IChar interface Removing a public interface is a breaking change, in case someone is implementing the interface for some reason. --- src/Umbraco.Core/Configuration/Models/CharItem.cs | 4 +++- .../Configuration/Models/RequestHandlerSettings.cs | 6 +++--- .../CharacterReplacementEqualityComparer.cs | 6 +++--- src/Umbraco.Core/Configuration/UmbracoSettings/IChar.cs | 9 +++++++++ 4 files changed, 18 insertions(+), 7 deletions(-) create mode 100644 src/Umbraco.Core/Configuration/UmbracoSettings/IChar.cs diff --git a/src/Umbraco.Core/Configuration/Models/CharItem.cs b/src/Umbraco.Core/Configuration/Models/CharItem.cs index 9a1178a1bf..e269e0a83e 100644 --- a/src/Umbraco.Core/Configuration/Models/CharItem.cs +++ b/src/Umbraco.Core/Configuration/Models/CharItem.cs @@ -1,6 +1,8 @@ +using Umbraco.Cms.Core.Configuration.UmbracoSettings; + namespace Umbraco.Cms.Core.Configuration.Models { - public class CharItem + public class CharItem : IChar { /// /// The character to replace diff --git a/src/Umbraco.Core/Configuration/Models/RequestHandlerSettings.cs b/src/Umbraco.Core/Configuration/Models/RequestHandlerSettings.cs index 105712396d..3c76af7252 100644 --- a/src/Umbraco.Core/Configuration/Models/RequestHandlerSettings.cs +++ b/src/Umbraco.Core/Configuration/Models/RequestHandlerSettings.cs @@ -78,13 +78,13 @@ namespace Umbraco.Cms.Core.Configuration.Models /// /// Add additional character replacements, or override defaults /// - public CharItem[] CharCollection { get; set; } + public IEnumerable CharCollection { get; set; } /// /// Get concatenated user and default character replacements /// taking into account /// - public IEnumerable GetCharReplacements() + public IEnumerable GetCharReplacements() { // TODO We need to special handle ":", as this character is special in keys @@ -109,7 +109,7 @@ namespace Umbraco.Cms.Core.Configuration.Models } } - var mergedCollections = DefaultCharCollection.Union(CharCollection, new CharacterReplacementEqualityComparer()); + var mergedCollections = DefaultCharCollection.Union(CharCollection, new CharacterReplacementEqualityComparer()); return mergedCollections; } diff --git a/src/Umbraco.Core/Configuration/UmbracoSettings/CharacterReplacementEqualityComparer.cs b/src/Umbraco.Core/Configuration/UmbracoSettings/CharacterReplacementEqualityComparer.cs index 7a830e9655..a916febb93 100644 --- a/src/Umbraco.Core/Configuration/UmbracoSettings/CharacterReplacementEqualityComparer.cs +++ b/src/Umbraco.Core/Configuration/UmbracoSettings/CharacterReplacementEqualityComparer.cs @@ -3,9 +3,9 @@ using Umbraco.Cms.Core.Configuration.Models; namespace Umbraco.Cms.Core.Configuration.UmbracoSettings { - public class CharacterReplacementEqualityComparer : IEqualityComparer + public class CharacterReplacementEqualityComparer : IEqualityComparer { - public bool Equals(CharItem x, CharItem y) + public bool Equals(IChar x, IChar y) { if (ReferenceEquals(x, y)) { @@ -30,7 +30,7 @@ namespace Umbraco.Cms.Core.Configuration.UmbracoSettings return x.Char == y.Char && x.Replacement == y.Replacement; } - public int GetHashCode(CharItem obj) + public int GetHashCode(IChar obj) { unchecked { diff --git a/src/Umbraco.Core/Configuration/UmbracoSettings/IChar.cs b/src/Umbraco.Core/Configuration/UmbracoSettings/IChar.cs new file mode 100644 index 0000000000..61e840245c --- /dev/null +++ b/src/Umbraco.Core/Configuration/UmbracoSettings/IChar.cs @@ -0,0 +1,9 @@ +namespace Umbraco.Cms.Core.Configuration.UmbracoSettings +{ + public interface IChar + { + string Char { get; } + + string Replacement { get; } + } +}