59 lines
2.0 KiB
C#
59 lines
2.0 KiB
C#
using System.Reflection;
|
|
using FrymasterBadgeApp.Services;
|
|
using Microsoft.Extensions.Configuration;
|
|
using Microsoft.Extensions.Logging;
|
|
|
|
namespace FrymasterBadgeApp;
|
|
|
|
public static class MauiProgram
|
|
{
|
|
public static MauiApp CreateMauiApp()
|
|
{
|
|
var builder = MauiApp.CreateBuilder();
|
|
builder
|
|
.UseMauiApp<App>()
|
|
.ConfigureFonts(fonts =>
|
|
{
|
|
fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
|
|
fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
|
|
fonts.AddFont("LibreBarcode128-Regular.ttf", "BarcodeFont");
|
|
});
|
|
|
|
// --- Simplified Configuration Loading ---
|
|
// Instead of GetManifestResourceStream, we use the simpler FileSystem approach
|
|
// if the file is marked as a MauiAsset.
|
|
try
|
|
{
|
|
var configPath = "appsettings.json";
|
|
// Note: MauiAssets in Resources/Raw are accessed at the root of the app package
|
|
using var stream = FileSystem.OpenAppPackageFileAsync(configPath).Result;
|
|
if (stream != null)
|
|
{
|
|
var config = new ConfigurationBuilder().AddJsonStream(stream).Build();
|
|
builder.Configuration.AddConfiguration(config);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
System.Diagnostics.Debug.WriteLine($"CONFIG WARNING: {ex.Message}");
|
|
// Don't 'throw' here unless it's truly fatal,
|
|
// otherwise the app won't even start.
|
|
}
|
|
|
|
// 1. Register Services
|
|
builder.Services.AddSingleton<SqlService>();
|
|
builder.Services.AddSingleton<PrinterService>();
|
|
|
|
// 2. Register Pages (Crucial for constructor injection)
|
|
builder.Services.AddTransient<MainPage>();
|
|
builder.Services.AddTransient<CompanyPage>();
|
|
builder.Services.AddTransient<EmployeePage>();
|
|
|
|
#if DEBUG
|
|
builder.Logging.AddDebug();
|
|
#endif
|
|
|
|
return builder.Build();
|
|
}
|
|
}
|