Inventory/AvaloniaApplication14_Inven.../Program.cs

55 lines
2.3 KiB
C#

using Avalonia;
using System;
using AvaloniaApplication14_Di_test_1125.Models;
using AvaloniaApplication14_Inventory_300326.Models.DataBase;
using AvaloniaApplication14_Inventory_300326.Models.Factories;
using AvaloniaApplication14_Inventory_300326.Models.Factoryes;
using AvaloniaApplication14_Inventory_300326.ViewModels;
using AvaloniaApplication14_Inventory_300326.Views;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
namespace AvaloniaApplication14_Inventory_300326;
sealed 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((context, service) =>
{
service.Configure<DatabaseSettings>(context.Configuration.GetSection("DatabaseSettings"));
service.AddTransient<MainWindow>();
service.AddTransient<MainWindowViewModel>();
service.AddTransient<EmployeeRepository>();
service.AddTransient<EquipmentRepository>();
service.AddTransient<PositionRepository>();
service.AddTransient<EquipmentEditingWindow>();
service.AddTransient<PositionViewModel>();
service.AddTransient<EmployeesViewModel>();
service.AddTransient<EquipmentViewModel>();
service.AddSingleton<EquipmentVisualFactory>();
service.AddSingleton<EquipmentFactory>();
service.AddSingleton<EmployeesVisualFactory>();
service.AddSingleton<EmployeesFactory>();
}).Build();
BuildAvaloniaApp(host.Services)
.StartWithClassicDesktopLifetime(args);
}
// Avalonia configuration, don't remove; also used by visual designer.
public static AppBuilder BuildAvaloniaApp(IServiceProvider hostServices)
=> AppBuilder.Configure(() => new App(hostServices))
.UsePlatformDetect()
.WithInterFont()
.LogToTrace();
}