From 40032979e6bba80c41b2623f8b214d57c6c61412 Mon Sep 17 00:00:00 2001 From: samatstarion Date: Fri, 5 Jun 2026 16:22:56 +0200 Subject: [PATCH] [Feature] Consolidate duplicated ResourceLoader into shared Reporting implementation; fixes #44 --- .../Generators/HandleBarsReportGenerator.cs | 2 +- .../Resources/ResourceLoader.cs | 11 ++++++----- ECoreNetto.Tools/Resources/ResourceLoader.cs | 17 ++++++----------- 3 files changed, 13 insertions(+), 17 deletions(-) diff --git a/ECoreNetto.Reporting/Generators/HandleBarsReportGenerator.cs b/ECoreNetto.Reporting/Generators/HandleBarsReportGenerator.cs index e7917c8..eb59599 100644 --- a/ECoreNetto.Reporting/Generators/HandleBarsReportGenerator.cs +++ b/ECoreNetto.Reporting/Generators/HandleBarsReportGenerator.cs @@ -91,7 +91,7 @@ protected void RegisterEmbeddedTemplate(string name) { var templatePath = $"ECoreNetto.Reporting.Templates.{name}.hbs"; - var template = ResourceLoader.LoadEmbeddedResource(templatePath); + var template = ResourceLoader.LoadEmbeddedResource(typeof(HandleBarsReportGenerator).Assembly, templatePath); var compiledTemplate = Handlebars.Compile(template); diff --git a/ECoreNetto.Reporting/Resources/ResourceLoader.cs b/ECoreNetto.Reporting/Resources/ResourceLoader.cs index ccf69d3..aa0ed3d 100644 --- a/ECoreNetto.Reporting/Resources/ResourceLoader.cs +++ b/ECoreNetto.Reporting/Resources/ResourceLoader.cs @@ -27,21 +27,22 @@ namespace ECoreNetto.Reporting.Resources /// /// Class responsible for loading embedded resources. /// - internal static class ResourceLoader + public static class ResourceLoader { /// - /// Load an embedded resource + /// Load an embedded resource from the provided /// + /// + /// The whose manifest contains the embedded resource + /// /// /// The path of the embedded resource /// /// /// a string containing the contents of the embedded resource /// - public static string LoadEmbeddedResource(string path) + public static string LoadEmbeddedResource(Assembly assembly, string path) { - var assembly = Assembly.GetExecutingAssembly(); - using var stream = assembly.GetManifestResourceStream(path); using var reader = new StreamReader(stream ?? throw new MissingManifestResourceException()); diff --git a/ECoreNetto.Tools/Resources/ResourceLoader.cs b/ECoreNetto.Tools/Resources/ResourceLoader.cs index 55b9db2..aed2b2f 100644 --- a/ECoreNetto.Tools/Resources/ResourceLoader.cs +++ b/ECoreNetto.Tools/Resources/ResourceLoader.cs @@ -20,17 +20,18 @@ namespace ECoreNetto.Tools.Resources { - using System.IO; using System.Reflection; - using System.Resources; + + using SharedResourceLoader = ECoreNetto.Reporting.Resources.ResourceLoader; /// - /// Class responsible for loading embedded resources. + /// Class responsible for loading embedded resources from this assembly and for the + /// Tools-specific version and logo queries. /// public static class ResourceLoader { /// - /// Load an embedded resource + /// Load an embedded resource from the executing (ECoreNetto.Tools) assembly /// /// /// The path of the embedded resource @@ -40,13 +41,7 @@ public static class ResourceLoader /// public static string LoadEmbeddedResource(string path) { - var assembly = Assembly.GetExecutingAssembly(); - - using var stream = assembly.GetManifestResourceStream(path); - - using var reader = new StreamReader(stream ?? throw new MissingManifestResourceException()); - - return reader.ReadToEnd(); + return SharedResourceLoader.LoadEmbeddedResource(Assembly.GetExecutingAssembly(), path); } ///