Files
elwig/Elwig/Helpers/Printing/Html.cs
Lorenz Stechauner 7adc9f89e4
Some checks failed
Test / Run tests (push) Has been cancelled
Printing/Html: Try to hotfix null pointer error
2026-02-04 16:33:21 +01:00

45 lines
1.7 KiB
C#

using RazorLight;
using System;
using System.Threading.Tasks;
namespace Elwig.Helpers.Printing {
public static class Html {
private static RazorLightEngine? Engine = null;
public static bool IsReady => Engine != null;
public static async Task Init(Action? evtHandler = null) {
var e = new RazorLightEngineBuilder()
.UseFileSystemProject(App.DocumentsPath)
.UseMemoryCachingProvider()
.Build();
await Task.Delay(500);
await e.CompileTemplateAsync("Document");
await e.CompileTemplateAsync("BusinessDocument");
await e.CompileTemplateAsync("BusinessLetter");
await e.CompileTemplateAsync("CreditNote");
await e.CompileTemplateAsync("DeliveryAncmtList");
await e.CompileTemplateAsync("DeliveryConfirmation");
await e.CompileTemplateAsync("DeliveryDepreciationList");
await e.CompileTemplateAsync("DeliveryJournal");
await e.CompileTemplateAsync("DeliveryNote");
await e.CompileTemplateAsync("Letterhead");
await e.CompileTemplateAsync("MemberDataSheet");
await e.CompileTemplateAsync("MemberList");
await e.CompileTemplateAsync("PaymentVariantSummary");
await e.CompileTemplateAsync("WineQualityStatistics");
Engine = e;
evtHandler?.Invoke();
}
public static async Task<string> CompileRenderAsync(string key, object model) {
if (Engine == null) throw new InvalidOperationException("The razor engine has not been initialized yet");
return await Engine.CompileRenderAsync(key, model);
}
}
}