52 lines
2.0 KiB
C#
52 lines
2.0 KiB
C#
using AutoService.Models;
|
|
using AutoService.ViewModels;
|
|
using Avalonia;
|
|
using Microsoft.Extensions.Configuration;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using Microsoft.Extensions.Hosting;
|
|
using System;
|
|
|
|
namespace AutoService
|
|
{
|
|
internal class Program
|
|
{
|
|
// Initialization code. Don't use any Avalonia, third-party APIs or any
|
|
// SynchronizationContext-reliant code before AppMain is called: things aren't initialized
|
|
// yet and stuff might break.
|
|
[STAThread]
|
|
public static void Main(string[] args)
|
|
{
|
|
|
|
var host = Host.CreateDefaultBuilder()
|
|
.ConfigureAppConfiguration((hostingContext, config) =>
|
|
{
|
|
config.SetBasePath(AppContext.BaseDirectory).AddJsonFile("appsettings.json").AddEnvironmentVariables();
|
|
})
|
|
.ConfigureServices((c,s) =>
|
|
{
|
|
s.Configure<DatabaseSettings>(c.Configuration.GetSection("DatabaseSettings"));
|
|
s.AddTransient<MainWindowVM>();
|
|
s.AddTransient<MainWindow>();
|
|
s.AddTransient<WorksWindow>();
|
|
s.AddTransient<WorksWindowVM>();
|
|
s.AddTransient<ReceiptWindowVM>();
|
|
s.AddTransient<ReceiptWindow>();
|
|
s.AddSingleton<IWorkRepository,WorkRepository>();
|
|
s.AddSingleton<IServiceRepository, ServiceRepository>();
|
|
s.AddSingleton<IProceedRepository, ProceedRepository>();
|
|
s.AddSingleton<LocalContainer>();
|
|
|
|
|
|
}).Build();
|
|
BuildAvaloniaApp(host.Services)
|
|
.StartWithClassicDesktopLifetime(args);
|
|
}
|
|
// Avalonia configuration, don't remove; also used by visual designer.
|
|
public static AppBuilder BuildAvaloniaApp(IServiceProvider provider)
|
|
=> AppBuilder.Configure(() => new App(provider))
|
|
.UsePlatformDetect()
|
|
.WithInterFont()
|
|
.LogToTrace();
|
|
}
|
|
}
|