Catalog/CatalogLite/Program.cs

45 lines
1.4 KiB
C#
Raw Permalink Normal View History

2026-05-26 21:47:55 +02:00
using Avalonia;
using MaddoShared;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
namespace CatalogLite;
internal static class Program
{
public static IServiceProvider ServiceProvider { get; private set; } = default!;
[STAThread]
public static int Main(string[] args)
{
var services = new ServiceCollection();
ConfigureServices(services);
ServiceProvider = services.BuildServiceProvider();
BuildAvaloniaApp().StartWithClassicDesktopLifetime(args ?? []);
return 0;
}
public static AppBuilder BuildAvaloniaApp()
=> AppBuilder.Configure<App>()
.UsePlatformDetect()
.LogToTrace();
private static void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<PicSettings>();
services.AddSingleton<CatalogConfigurationLoader>();
services.AddTransient<ImageCreatorImageSharp>();
services.AddTransient<IImageCreator>(sp => sp.GetRequiredService<ImageCreatorImageSharp>());
services.AddTransient<ImageCreationService>();
services.AddTransient<ImageProcessingCoordinator>();
services.AddTransient<LiteCatalogViewModel>();
services.AddTransient<MainWindow>();
services.AddLogging(builder =>
{
builder.AddConsole();
builder.SetMinimumLevel(LogLevel.Information);
});
}
}