RBLNews/RBLNews.Maui/MauiProgram.cs
Tobias Wohlleben f185b54902
All checks were successful
Restart Docker Container on Production / build (pull_request) Successful in 3m0s
umbau auf enviroment appsettings
2024-09-26 10:21:01 +02:00

64 lines
2.2 KiB
C#

using System.Reflection;
using CommunityToolkit.Maui;
using CommunityToolkit.Maui.Markup;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Microsoft.Maui.Controls.Hosting;
using Microsoft.Maui.Hosting;
using RBLNews.Maui.Services;
using RBLNews.Shared.Models;
using RBLNews.Shared.Services;
using RBLNews.Shared.Services.Contracts;
namespace RBLNews.Maui
{
public static class MauiProgram
{
public static MauiApp CreateMauiApp()
{
var builder = MauiApp.CreateBuilder();
builder
.UseMauiApp<App>()
.UseMauiCommunityToolkit()
.UseMauiCommunityToolkitMarkup()
.ConfigureFonts(fonts =>
{
//fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
fonts.AddFont("NanumMyeongjo-Regular.ttf", "NanumMyeongjoRegular");
});
builder.Services.AddMauiBlazorWebView();
builder.Services.AddBlazorBootstrap();
builder.Services.AddSingleton<IConfigService, ConfigService>();
builder.Services.AddSingleton<IFeedDataService, FeedDataService>();
builder.Services.AddSingleton<AppLifecycleService>();
#if DEBUG
builder.Services.AddBlazorWebViewDeveloperTools();
builder.Logging.AddDebug();
#endif
Stream? appSettingFile = Assembly.GetExecutingAssembly().GetManifestResourceStream($"appsettings.json");
if (appSettingFile != null)
{
IConfiguration configuration = new ConfigurationManager().AddJsonStream(appSettingFile).Build();
builder.Configuration.AddConfiguration(configuration);
}
MauiApp app = builder.Build();
AppSettingsModel? appSettings = app.Configuration.GetSection("App").Get<AppSettingsModel>();
if (string.IsNullOrEmpty(appSettings?.BackendApiUrl))
{
throw new Exception($"can't instantiate services, due to parameters are null. backendApiUrl: '{appSettings?.BackendApiUrl}'");
}
return app;
}
}
}