From 25c988d2181b7f6f8f50c1e3f6c381f590206a26 Mon Sep 17 00:00:00 2001 From: Stef Heyenrath Date: Fri, 26 Jun 2026 18:02:33 +0200 Subject: [PATCH 1/6] Update Handlebars.Net to 2.2.0 --- azure-pipeline-ci.yml | 5 +- src/Directory.Build.props | 10 ++-- .../Handlebars.Net.Helpers.Core.csproj | 46 +++++++------------ .../Handlebars.Net.Helpers.Xslt.csproj | 33 +++++++------ .../Handlebars.Net.Helpers.Tests.csproj | 2 +- 5 files changed, 41 insertions(+), 55 deletions(-) diff --git a/azure-pipeline-ci.yml b/azure-pipeline-ci.yml index 5753bd4..e6bdebb 100644 --- a/azure-pipeline-ci.yml +++ b/azure-pipeline-ci.yml @@ -30,11 +30,10 @@ steps: displayName: 'Begin analysis on SonarCloud' condition: and(succeeded(), eq(variables['RUN_SONAR'], 'yes'), ne(variables['Build.Reason'], 'PullRequest')) # Do not run for PullRequests -# Build source, tests and run tests for net452 and net8.0 (with coverage) +# Build source, tests and run tests for net8.0 (with coverage) - script: | - dotnet test ./test/Handlebars.Net.Helpers.Tests/Handlebars.Net.Helpers.Tests.csproj --configuration Debug --framework net452 dotnet test ./test/Handlebars.Net.Helpers.Tests/Handlebars.Net.Helpers.Tests.csproj --configuration Debug --framework net8.0 --logger trx /p:CollectCoverage=true /p:CoverletOutputFormat=opencover - displayName: 'Build source, tests and run tests for net452 and net8.0 (with coverage)' + displayName: 'Build source, tests and run tests (with coverage)' - script: | dotnet sonarscanner end /d:sonar.token="$(SONAR_TOKEN)" diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 2bc8bd2..b863615 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -4,8 +4,8 @@ - net451;net452;net46;netstandard1.3;netstandard2.0;netstandard2.1;net6.0;net8.0 - 2.5.5 + netstandard2.0;netstandard2.1;net8.0 + 2.6.0 12 enable Copyright © 2020-2025 Stef Heyenrath @@ -22,10 +22,10 @@ true - - + diff --git a/src/Handlebars.Net.Helpers.Core/Handlebars.Net.Helpers.Core.csproj b/src/Handlebars.Net.Helpers.Core/Handlebars.Net.Helpers.Core.csproj index 452d911..151b584 100644 --- a/src/Handlebars.Net.Helpers.Core/Handlebars.Net.Helpers.Core.csproj +++ b/src/Handlebars.Net.Helpers.Core/Handlebars.Net.Helpers.Core.csproj @@ -1,38 +1,26 @@  - - HandlebarsDotNet.Helpers - HandlebarsDotNet.Helpers.Core - Core functionality for Handlebars.Net.Helpers - Handlebars.Net.Helpers.Core - handlebars;helpers;extensions;core;models;interfaces;common - handlebars;helper;models;interfaces - {7CBD113C-A754-480B-B0D0-AA9DF734F612} - true - ../Handlebars.Net.Helpers.snk + + HandlebarsDotNet.Helpers + HandlebarsDotNet.Helpers.Core + Core functionality for Handlebars.Net.Helpers + Handlebars.Net.Helpers.Core + handlebars;helpers;extensions;core;models;interfaces;common + handlebars;helper;models;interfaces + {7CBD113C-A754-480B-B0D0-AA9DF734F612} + true + ../Handlebars.Net.Helpers.snk $(DefineConstants);SIMPLE_JSON_INTERNAL - + - - - + + + + + - - $(DefineConstants);SIMPLE_JSON_DATACONTRACT;SIMPLE_JSON_DYNAMIC - - - - $(DefineConstants);SIMPLE_JSON_TYPEINFO - - - - - - \ No newline at end of file diff --git a/src/Handlebars.Net.Helpers.Xslt/Handlebars.Net.Helpers.Xslt.csproj b/src/Handlebars.Net.Helpers.Xslt/Handlebars.Net.Helpers.Xslt.csproj index c75f257..46fb1d7 100644 --- a/src/Handlebars.Net.Helpers.Xslt/Handlebars.Net.Helpers.Xslt.csproj +++ b/src/Handlebars.Net.Helpers.Xslt/Handlebars.Net.Helpers.Xslt.csproj @@ -1,22 +1,21 @@  - - HandlebarsDotNet.Helpers - HandlebarsDotNet.Helpers.Xslt - Handlebars.Net.Helpers.Xslt - Handlebars.Net.Helpers Xslt - handlebars;helper;xml;xslt;transform - {E9A5CF6C-544C-4D1C-8AAD-EF4144FF710A} - true - ../Handlebars.Net.Helpers.snk - net46;netstandard2.0;netstandard2.1;net6.0;net8.0 - - - - + + HandlebarsDotNet.Helpers + HandlebarsDotNet.Helpers.Xslt + Handlebars.Net.Helpers.Xslt + Handlebars.Net.Helpers Xslt + handlebars;helper;xml;xslt;transform + {E9A5CF6C-544C-4D1C-8AAD-EF4144FF710A} + true + ../Handlebars.Net.Helpers.snk + - - - + + + + + + \ No newline at end of file diff --git a/test/Handlebars.Net.Helpers.Tests/Handlebars.Net.Helpers.Tests.csproj b/test/Handlebars.Net.Helpers.Tests/Handlebars.Net.Helpers.Tests.csproj index 0181cd0..930efd1 100644 --- a/test/Handlebars.Net.Helpers.Tests/Handlebars.Net.Helpers.Tests.csproj +++ b/test/Handlebars.Net.Helpers.Tests/Handlebars.Net.Helpers.Tests.csproj @@ -1,7 +1,7 @@  - net451;net452;net46;netcoreapp3.1;net6.0;net8.0 + net8.0 false HandlebarsDotNet.Helpers.Tests HandlebarsDotNet.Helpers.Tests From ce3e7c08e615058423d13c3369e2af9a36da05a2 Mon Sep 17 00:00:00 2001 From: Stef Heyenrath Date: Fri, 7 Aug 2026 08:30:52 +0200 Subject: [PATCH 2/6] Upgrade Handlebars.Net to 2.4.1 --- examples/ConsoleApp/Program.cs | 123 +++++++++++------- .../Handlebars.Net.Helpers.Core.csproj | 8 +- .../IO/PassthroughTextEncoder.cs | 23 +++- .../Parsers/ArgumentsParser.cs | 9 +- .../Handlebars.Net.Helpers.DynamicLinq.csproj | 2 +- .../Helpers/DynamicLinqHelpers.cs | 2 +- .../Helpers/DateTimeHelpers.cs | 2 +- .../Helpers/ObjectHelpersTests.cs | 7 + 8 files changed, 113 insertions(+), 63 deletions(-) diff --git a/examples/ConsoleApp/Program.cs b/examples/ConsoleApp/Program.cs index 5db78af..951f0f3 100644 --- a/examples/ConsoleApp/Program.cs +++ b/examples/ConsoleApp/Program.cs @@ -1,8 +1,11 @@ using System; using System.Collections.Generic; using System.Globalization; +using System.Linq; using HandlebarsDotNet; using HandlebarsDotNet.Helpers; +using HandlebarsDotNet.Helpers.Enums; +using HandlebarsDotNet.Helpers.Options; using Newtonsoft.Json.Linq; namespace ConsoleApp; @@ -47,7 +50,19 @@ static void Main(string[] args) var template1 = handlebars.Compile("{{ifCond MyData eq 01 X Y}}"); var result1 = template1.Invoke(new { MyData = "01" }); - HandlebarsHelpers.Register(handlebars, options => { options.UseCategoryPrefix = false; }); + HandlebarsHelpers.Register(handlebars, options => + { + var categories = HandlebarsHelpersOptions.DefaultAllowedHandlebarsHelpers.ToList(); + categories.Add(Category.Environment); + categories.Add(Category.DynamicLinq); + + options.DynamicLinqHelperOptions = new HandlebarsDynamicLinqHelperOptions + { + AllowEqualsAndToStringMethodsOnObject = true + }; + options.Categories = categories.ToArray(); + options.UseCategoryPrefix = false; + }); //handlebars.RegisterHelper("ArrayTest", (context, arguments) => //{ @@ -146,9 +161,9 @@ static void Main(string[] args) "{{Count a }}", "{{Count a 'it.Contains(\"o\")'}}", "{{Count a 'it.Contains(\"z\")'}}", - "{{DynamicLinq.Max a }}", - "{{DynamicLinq.Max a 'it.Contains(\"o\")'}}", - "{{DynamicLinq.Max a 'it.Contains(\"z\")'}}", + "{{DynamicLinq.Min i }}", + "{{DynamicLinq.Max i }}", + "{{DynamicLinq.Sum i }}", "{{Any a 'it.Contains(\"o\")'}}", "{{All a 'it.Contains(\"o\")'}}", "{{All a 'it.Length > 1'}}", @@ -161,7 +176,6 @@ static void Main(string[] args) "{{OrderBy a 'it'}}", "{{OrderBy a 'it desc'}}", "{{OfType a 'int'}}", - "{{DynamicLinq.Sum i}}", "JObject {{Count o.a }}", "JObject {{Where o.a 'it.Contains(\"s\")'}}", @@ -171,41 +185,42 @@ static void Main(string[] args) "{{a.length}}" }; - foreach (string test in tests) + var p1 = new JObject { - var p1 = new JObject - { - { "X", new JValue("x") } - }; - var p2 = new JObject - { - { "X", new JValue("y") } - }; - var o = new JObject - { - { "Id", new JValue(9) }, - { "Name", new JValue("Test") }, - { "a", new JArray("stef", "test", "other") }, - { "a2", new JArray(p1, p2) } - }; + { "X", new JValue("x") } + }; + var p2 = new JObject + { + { "X", new JValue("y") } + }; + var o = new JObject + { + { "Id", new JValue(9) }, + { "Name", new JValue("Test") }, + { "a", new JArray("stef", "test", "other") }, + { "a2", new JArray(p1, p2) } + }; - var dictionary = new Dictionary - { - { "1", "one" }, - { "2", "two" }, - { "d", "ddd" } - }; + var dictionary = new Dictionary + { + { "1", "one" }, + { "2", "two" }, + { "d", "ddd" } + }; - var t = new - { - x = DateTime.Now, - i = new[] { 1, 2, 4 }, - a = new[] { "stef", "test", "other" }, - dup = new[] { "stef", "stef", "other" }, - d = new[] { new DateTime(2022, 1, 1), DateTime.Now }, - o = o, - data = dictionary - }; + var t = new + { + x = DateTime.Now, + i = new[] { 1, 2, 4 }, + a = new[] { "stef", "test", "other" }, + dup = new[] { "stef", "stef", "other" }, + d = new[] { new DateTime(2022, 1, 1), DateTime.Now }, + o = o, + data = dictionary + }; + + foreach (string test in tests) + { var template = handlebars.Compile(test); var result = template.Invoke(t); Console.WriteLine($"{test} : '{result}'"); @@ -214,7 +229,20 @@ static void Main(string[] args) Console.WriteLine(new string('-', 80)); var handlebars2 = Handlebars.Create(); - HandlebarsHelpers.Register(handlebars2, options => { options.UseCategoryPrefix = true; }); + HandlebarsHelpers.Register(handlebars2, options => + { + var categories = HandlebarsHelpersOptions.DefaultAllowedHandlebarsHelpers.ToList(); + categories.Add(Category.Environment); + categories.Add(Category.DynamicLinq); + + options.DynamicLinqHelperOptions = new HandlebarsDynamicLinqHelperOptions + { + AllowEqualsAndToStringMethodsOnObject = true + }; + options.Categories = categories.ToArray(); + options.UseCategoryPrefix = true; + }); + var tests2 = new[] { @@ -224,18 +252,19 @@ static void Main(string[] args) "{{[DynamicLinq.Sum] i}}" }; + var t2 = new + { + x = DateTime.Now, + i = new[] { 1, 2, 4 }, + a = new[] { "stef", "test", "other" }, + dup = new[] { "stef", "stef", "other" }, + d = new[] { new DateTime(2022, 1, 1), DateTime.Now } + }; + foreach (string test in tests2) { - var t = new - { - x = DateTime.Now, - i = new[] { 1, 2, 4 }, - a = new[] { "stef", "test", "other" }, - dup = new[] { "stef", "stef", "other" }, - d = new[] { new DateTime(2022, 1, 1), DateTime.Now } - }; var template = handlebars2.Compile(test); - var result = template.Invoke(t); + var result = template.Invoke(t2); Console.WriteLine($"{test} : '{result}'"); } } diff --git a/src/Handlebars.Net.Helpers.Core/Handlebars.Net.Helpers.Core.csproj b/src/Handlebars.Net.Helpers.Core/Handlebars.Net.Helpers.Core.csproj index 151b584..1142590 100644 --- a/src/Handlebars.Net.Helpers.Core/Handlebars.Net.Helpers.Core.csproj +++ b/src/Handlebars.Net.Helpers.Core/Handlebars.Net.Helpers.Core.csproj @@ -14,12 +14,12 @@ - - - + + diff --git a/src/Handlebars.Net.Helpers.Core/IO/PassthroughTextEncoder.cs b/src/Handlebars.Net.Helpers.Core/IO/PassthroughTextEncoder.cs index a7fdff0..357cb7e 100644 --- a/src/Handlebars.Net.Helpers.Core/IO/PassthroughTextEncoder.cs +++ b/src/Handlebars.Net.Helpers.Core/IO/PassthroughTextEncoder.cs @@ -13,9 +13,12 @@ public class PassthroughTextEncoder : ITextEncoder /// /// The StringBuilder containing the text. /// The TextWriter to write the text to. - public void Encode(StringBuilder text, TextWriter target) + public void Encode(StringBuilder? text, TextWriter target) { - target.Write(text); + if (text != null) + { + target.Write(text); + } } /// @@ -23,9 +26,12 @@ public void Encode(StringBuilder text, TextWriter target) /// /// The string containing the text. /// The TextWriter to write the text to. - public void Encode(string text, TextWriter target) + public void Encode(string? text, TextWriter target) { - target.Write(text); + if (text != null) + { + target.Write(text); + } } /// @@ -34,11 +40,14 @@ public void Encode(string text, TextWriter target) /// The type of the text enumerator. /// The enumerator containing the text. /// The TextWriter to write the text to. - public void Encode(T text, TextWriter target) where T : IEnumerator + public void Encode(T? text, TextWriter target) where T : IEnumerator { - while (text.MoveNext()) + if (text != null) { - target.Write(text.Current); + while (text.MoveNext()) + { + target.Write(text.Current); + } } } } \ No newline at end of file diff --git a/src/Handlebars.Net.Helpers.Core/Parsers/ArgumentsParser.cs b/src/Handlebars.Net.Helpers.Core/Parsers/ArgumentsParser.cs index 8792aa4..37fdb13 100644 --- a/src/Handlebars.Net.Helpers.Core/Parsers/ArgumentsParser.cs +++ b/src/Handlebars.Net.Helpers.Core/Parsers/ArgumentsParser.cs @@ -10,7 +10,7 @@ namespace HandlebarsDotNet.Helpers.Parsers; public static class ArgumentsParser { private static readonly Type[] SupportedTypes = { typeof(int), typeof(long), typeof(double) }; - + public static List Parse(IHandlebars context, ParameterInfo[] parameters, Arguments arguments) { var result = new List<(object? Argument, object? DefaultValue)>(); @@ -33,6 +33,11 @@ public static class ArgumentsParser public static object? Parse(IHandlebars context, object? argument, object? defaultValue, bool convertObjectArrayToStringList = false) { + if (argument == null) + { + return defaultValue; + } + if (argument is UndefinedBindingResult argumentAsUndefinedBindingResult) { if (TryParseUndefinedBindingResult(argumentAsUndefinedBindingResult, out var parsedAsObjectList)) @@ -52,7 +57,7 @@ public static class ArgumentsParser } } - return argument; + return argument ?? defaultValue; } public static object ParseAsIntLongOrDouble(IHandlebars context, object? value) diff --git a/src/Handlebars.Net.Helpers.DynamicLinq/Handlebars.Net.Helpers.DynamicLinq.csproj b/src/Handlebars.Net.Helpers.DynamicLinq/Handlebars.Net.Helpers.DynamicLinq.csproj index 58a1522..ef20271 100644 --- a/src/Handlebars.Net.Helpers.DynamicLinq/Handlebars.Net.Helpers.DynamicLinq.csproj +++ b/src/Handlebars.Net.Helpers.DynamicLinq/Handlebars.Net.Helpers.DynamicLinq.csproj @@ -12,7 +12,7 @@ - + diff --git a/src/Handlebars.Net.Helpers.DynamicLinq/Helpers/DynamicLinqHelpers.cs b/src/Handlebars.Net.Helpers.DynamicLinq/Helpers/DynamicLinqHelpers.cs index e5aff79..230f323 100644 --- a/src/Handlebars.Net.Helpers.DynamicLinq/Helpers/DynamicLinqHelpers.cs +++ b/src/Handlebars.Net.Helpers.DynamicLinq/Helpers/DynamicLinqHelpers.cs @@ -336,7 +336,7 @@ public IEnumerable SkipWhile(object value, string linqPredicate) { Guard.NotNull(value); - // CallWhere(...) and call Skip. + // CallWhere(...) and call SkipWhile. return CallWhere(value).SkipWhile(_config, linqPredicate).ToDynamicArray(); } diff --git a/src/Handlebars.Net.Helpers/Helpers/DateTimeHelpers.cs b/src/Handlebars.Net.Helpers/Helpers/DateTimeHelpers.cs index d43eb79..99d9033 100644 --- a/src/Handlebars.Net.Helpers/Helpers/DateTimeHelpers.cs +++ b/src/Handlebars.Net.Helpers/Helpers/DateTimeHelpers.cs @@ -122,7 +122,7 @@ public DateTime Add(object value, int increment, string datePart, string? format { null => null, DateTime dateTimeValue => dateTimeValue, - string stringValue => string.IsNullOrEmpty(format) ? Parse(stringValue) : ParseExact(stringValue, format), + string stringValue => string.IsNullOrEmpty(format) ? Parse(stringValue) : ParseExact(stringValue, format!), _ => GetDatetime(value.ToString(), format) }; } diff --git a/test/Handlebars.Net.Helpers.Tests/Helpers/ObjectHelpersTests.cs b/test/Handlebars.Net.Helpers.Tests/Helpers/ObjectHelpersTests.cs index 31065f0..eb50ede 100644 --- a/test/Handlebars.Net.Helpers.Tests/Helpers/ObjectHelpersTests.cs +++ b/test/Handlebars.Net.Helpers.Tests/Helpers/ObjectHelpersTests.cs @@ -243,5 +243,12 @@ public override bool Equals(object? obj) { return obj is CustomObject @object && Value == @object.Value; } + + public override int GetHashCode() + { + var hashCode = new HashCode(); + hashCode.Add(Value); + return hashCode.ToHashCode(); + } } } \ No newline at end of file From f0e142c213fa45cef94ae5dc609ed9be5af33c09 Mon Sep 17 00:00:00 2001 From: Stef Heyenrath Date: Fri, 7 Aug 2026 09:02:12 +0200 Subject: [PATCH 3/6] icon --- src/Directory.Build.props | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/Directory.Build.props b/src/Directory.Build.props index b863615..33269ad 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -8,16 +8,20 @@ 2.6.0 12 enable - Copyright © 2020-2025 Stef Heyenrath + Copyright © 2020-2026 Stef Heyenrath Stef Heyenrath See CHANGELOG.md - https://raw.githubusercontent.com/Handlebars-Net/Handlebars.Net.Helpers/master/resources/hbnet-icon.png + hbnet-icon.png https://github.com/Handlebars-Net/Handlebars.Net.Helpers MIT git https://github.com/Handlebars-Net/Handlebars.Net.Helpers + + + + true From 2fd2348b4cfef04d79556eaddabb32d4c08966b0 Mon Sep 17 00:00:00 2001 From: Stef Heyenrath Date: Fri, 7 Aug 2026 09:07:06 +0200 Subject: [PATCH 4/6] sc --- src/Handlebars.Net.Helpers.Core/Parsers/ArgumentsParser.cs | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/Handlebars.Net.Helpers.Core/Parsers/ArgumentsParser.cs b/src/Handlebars.Net.Helpers.Core/Parsers/ArgumentsParser.cs index 37fdb13..9106a7d 100644 --- a/src/Handlebars.Net.Helpers.Core/Parsers/ArgumentsParser.cs +++ b/src/Handlebars.Net.Helpers.Core/Parsers/ArgumentsParser.cs @@ -33,11 +33,6 @@ public static class ArgumentsParser public static object? Parse(IHandlebars context, object? argument, object? defaultValue, bool convertObjectArrayToStringList = false) { - if (argument == null) - { - return defaultValue; - } - if (argument is UndefinedBindingResult argumentAsUndefinedBindingResult) { if (TryParseUndefinedBindingResult(argumentAsUndefinedBindingResult, out var parsedAsObjectList)) From 85fc814e3c1d8ced719bbc3a63d014d168a5dcd7 Mon Sep 17 00:00:00 2001 From: Stef Heyenrath Date: Sun, 9 Aug 2026 19:42:19 +0200 Subject: [PATCH 5/6] . --- .../Handlebars.Net.Helpers.Core.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Handlebars.Net.Helpers.Core/Handlebars.Net.Helpers.Core.csproj b/src/Handlebars.Net.Helpers.Core/Handlebars.Net.Helpers.Core.csproj index 1142590..4092dab 100644 --- a/src/Handlebars.Net.Helpers.Core/Handlebars.Net.Helpers.Core.csproj +++ b/src/Handlebars.Net.Helpers.Core/Handlebars.Net.Helpers.Core.csproj @@ -14,7 +14,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive From d3ebfbe322e8ab156c23166926ab7b6af3c46258 Mon Sep 17 00:00:00 2001 From: Stef Heyenrath Date: Sun, 9 Aug 2026 19:46:13 +0200 Subject: [PATCH 6/6] . --- src/Handlebars.Net.Helpers.Core/GlobalUsings.cs | 6 +----- .../Json/DataContractJsonSerializerStrategy.cs | 7 +------ src/Handlebars.Net.Helpers.Core/Json/JsonObject.cs | 1 - .../Utils/DefaultValueCache.cs | 1 - .../Utils/IDateTimeService.cs | 11 ++++------- .../Handlebars.Net.Helpers.Json.csproj | 2 +- 6 files changed, 7 insertions(+), 21 deletions(-) diff --git a/src/Handlebars.Net.Helpers.Core/GlobalUsings.cs b/src/Handlebars.Net.Helpers.Core/GlobalUsings.cs index 26a4b9b..37af930 100644 --- a/src/Handlebars.Net.Helpers.Core/GlobalUsings.cs +++ b/src/Handlebars.Net.Helpers.Core/GlobalUsings.cs @@ -1,6 +1,2 @@ global using global::System; -global using global::System.IO; -#if !(NET35 || NET40) -global using global::System.Threading; -global using global::System.Threading.Tasks; -#endif \ No newline at end of file +global using global::System.IO; \ No newline at end of file diff --git a/src/Handlebars.Net.Helpers.Core/Json/DataContractJsonSerializerStrategy.cs b/src/Handlebars.Net.Helpers.Core/Json/DataContractJsonSerializerStrategy.cs index 640c01d..5295c33 100644 --- a/src/Handlebars.Net.Helpers.Core/Json/DataContractJsonSerializerStrategy.cs +++ b/src/Handlebars.Net.Helpers.Core/Json/DataContractJsonSerializerStrategy.cs @@ -1,9 +1,4 @@ -using System.CodeDom.Compiler; -using System.Collections.Generic; -using System.Reflection; -using System.Runtime.Serialization; - -namespace HandlebarsDotNet.Helpers.Json; +namespace HandlebarsDotNet.Helpers.Json; #if SIMPLE_JSON_DATACONTRACT [GeneratedCode("simple-json", "1.0.0")] diff --git a/src/Handlebars.Net.Helpers.Core/Json/JsonObject.cs b/src/Handlebars.Net.Helpers.Core/Json/JsonObject.cs index 06cd416..758a473 100644 --- a/src/Handlebars.Net.Helpers.Core/Json/JsonObject.cs +++ b/src/Handlebars.Net.Helpers.Core/Json/JsonObject.cs @@ -2,7 +2,6 @@ using System.Collections; using System.Collections.Generic; using System.ComponentModel; -using System.Dynamic; using Stef.Validation; namespace HandlebarsDotNet.Helpers.Json; diff --git a/src/Handlebars.Net.Helpers.Core/Utils/DefaultValueCache.cs b/src/Handlebars.Net.Helpers.Core/Utils/DefaultValueCache.cs index ca5ea61..0c2ca05 100644 --- a/src/Handlebars.Net.Helpers.Core/Utils/DefaultValueCache.cs +++ b/src/Handlebars.Net.Helpers.Core/Utils/DefaultValueCache.cs @@ -1,5 +1,4 @@ using System.Collections.Concurrent; -using System.Reflection; namespace HandlebarsDotNet.Helpers.Utils; diff --git a/src/Handlebars.Net.Helpers.Core/Utils/IDateTimeService.cs b/src/Handlebars.Net.Helpers.Core/Utils/IDateTimeService.cs index acc3078..72d7deb 100644 --- a/src/Handlebars.Net.Helpers.Core/Utils/IDateTimeService.cs +++ b/src/Handlebars.Net.Helpers.Core/Utils/IDateTimeService.cs @@ -1,11 +1,8 @@ -using System; +namespace HandlebarsDotNet.Helpers.Utils; -namespace HandlebarsDotNet.Helpers.Utils +public interface IDateTimeService { - public interface IDateTimeService - { - DateTime Now(); + DateTime Now(); - DateTime UtcNow(); - } + DateTime UtcNow(); } \ No newline at end of file diff --git a/src/Handlebars.Net.Helpers.Json/Handlebars.Net.Helpers.Json.csproj b/src/Handlebars.Net.Helpers.Json/Handlebars.Net.Helpers.Json.csproj index 9bcf8c2..2eaaac4 100644 --- a/src/Handlebars.Net.Helpers.Json/Handlebars.Net.Helpers.Json.csproj +++ b/src/Handlebars.Net.Helpers.Json/Handlebars.Net.Helpers.Json.csproj @@ -12,7 +12,7 @@ - +