64 lines
2.3 KiB
C#

using Avalonia;
using Avalonia.Controls.ApplicationLifetimes;
using Avalonia.Markup.Xaml;
using Avalonia.Styling;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using NLog.Extensions.Logging;
using Seyounth.Hyosung.Ava.ViewModels;
using Seyounth.Hyosung.Ava.Views;
using Seyounth.Hyosung.Core;
using Seyounth.Hyosung.Core.Printer;
using Seyounth.Hyosung.Data;
using Seyounth.Hyosung.Runtime;
using SukiUI;
using SukiUI.Toasts;
namespace Seyounth.Hyosung.Ava;
public partial class App : Application
{
public static IHost _Host { get; private set; }
public override void Initialize()
{
var builder = Host
.CreateApplicationBuilder();
builder.Logging.ClearProviders();
builder.Logging.SetMinimumLevel(LogLevel.Trace);
builder.Logging.AddNLog("nlog.config");
builder.Configuration.AddJsonFile("PrintTemp.json", true, true);
builder.Configuration.AddJsonFile("appsettings.json", true, true);
builder.Services.Configure<PrintTemp>(builder.Configuration.GetSection("Print"));
builder.Services.AddSingleton<MainWindowViewModel>();
builder.Services.AddSingleton<MainWindow>();
builder.Services.AddSingleton<HomePage>();
builder.Services.AddSingleton<HomeViewModel>();
builder.Services.AddSingleton<VarietyManagerPage>();
builder.Services.AddSingleton<VarietyManagerViewModel>();
builder.Services.AddSingleton<PalletManagerPage>();
builder.Services.AddSingleton<PalletManagerViewModel>();
builder.Services.AddSingleton<ISukiToastManager, SukiToastManager>();
builder.Services.AddHyosung(builder.Configuration);
_Host = builder.Build();
//_Host.Services.UseHyosung();
_Host.RunAsync();
AvaloniaXamlLoader.Load(this);
SukiTheme.GetInstance().ChangeBaseTheme(ThemeVariant.Dark);
}
public override void OnFrameworkInitializationCompleted()
{
if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
{
desktop.MainWindow = _Host.Services.GetRequiredService<MainWindow>();
}
base.OnFrameworkInitializationCompleted();
}
}