using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Logging; using WorkFlowCheck.MAUI.Services; using Microsoft.Extensions.Http; using Microsoft.Extensions.DependencyInjection; using CommunityToolkit.Maui; using WorkFlowCheck.MAUI.DataLayer; using WorkFlowCheck.MAUI.Mapper; namespace WorkFlowCheck.MAUI { public static class MauiProgram { public static MauiApp CreateMauiApp() { var builder = MauiApp.CreateBuilder(); builder.Services.AddAutoMapper(typeof(MapperProfile)); // appsettings.json beállítása string jsonFilePath = Path.Combine(FileSystem.AppDataDirectory, "appsettings.json"); // Másold a fájlt a Raw erőforrásokból az AppDataDirectory-ba, ha még nincs ott if (!File.Exists(jsonFilePath)) { using var stream = FileSystem.OpenAppPackageFileAsync("appsettings.json").Result; using var reader = new StreamReader(stream); File.WriteAllText(jsonFilePath, reader.ReadToEnd()); } var configuration = new ConfigurationBuilder().SetBasePath(FileSystem.AppDataDirectory) // A konfigurációs fájl betöltése az alkalmazás adat könyvtárából .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true).Build(); builder.Services.AddHttpClient(client => { var apiUrl = configuration["ApiBaseUrl"]; // API-cím betöltése a konfigurációból client.BaseAddress = new Uri(apiUrl); }); builder.Services.AddDbContext(); builder.Services.AddSingleton(configuration); builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddTransient(); builder.UseMauiApp().ConfigureFonts(fonts => { fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular"); fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold"); }).UseMauiCommunityToolkit(); #if DEBUG builder.Logging.AddDebug(); #endif // HttpClient regisztrálása az alap API-címmel var app = builder.Build(); // Szolgáltató tárolása globálisan ServiceProvider = app.Services; return app; } public static IServiceProvider ServiceProvider { get; private set; } } }