auto_service/AutoService/Program.cs

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();
}
}