45 lines
1.4 KiB
C#
45 lines
1.4 KiB
C#
|
|
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);
|
||
|
|
});
|
||
|
|
}
|
||
|
|
}
|