62 lines
2.1 KiB
C#
62 lines
2.1 KiB
C#
using Avalonia;
|
|
using Avalonia.Controls.ApplicationLifetimes;
|
|
using Avalonia.Markup.Xaml;
|
|
using FootwearTest.Services;
|
|
using FootwearTest.ViewModels;
|
|
using FootwearTest.Views;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
|
|
namespace FootwearTest
|
|
{
|
|
public partial class App : Application
|
|
{
|
|
private ServiceProvider? _serviceProvider;
|
|
|
|
public override void Initialize()
|
|
{
|
|
AvaloniaXamlLoader.Load(this);
|
|
}
|
|
|
|
public override void OnFrameworkInitializationCompleted()
|
|
{
|
|
_serviceProvider = ConfigureServices();
|
|
|
|
if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
|
|
{
|
|
desktop.MainWindow = new MainWindow
|
|
{
|
|
DataContext = _serviceProvider.GetRequiredService<MainWindowViewModel>(),
|
|
};
|
|
}
|
|
|
|
base.OnFrameworkInitializationCompleted();
|
|
}
|
|
|
|
private static ServiceProvider ConfigureServices()
|
|
{
|
|
var services = new ServiceCollection();
|
|
services.AddSingleton<DeviceSettings>();
|
|
services.AddSingleton<TestFormulaService>();
|
|
services.AddSingleton<TestRunRepository>();
|
|
services.AddSingleton<ReportService>();
|
|
services.AddSingleton<ExcelReportService>();
|
|
services.AddSingleton<IDeviceClient>(provider =>
|
|
{
|
|
var settings = provider.GetRequiredService<DeviceSettings>();
|
|
return settings.UseSimulator
|
|
? new SimulatedDeviceClient(settings)
|
|
: new ModbusTcpDeviceClient(settings);
|
|
});
|
|
|
|
services.AddSingleton<DashboardViewModel>();
|
|
services.AddSingleton<MethodAViewModel>();
|
|
services.AddSingleton<MethodBViewModel>();
|
|
services.AddSingleton<HistoryViewModel>();
|
|
services.AddSingleton<ReportViewModel>();
|
|
services.AddSingleton<SettingsViewModel>();
|
|
services.AddSingleton<MainWindowViewModel>();
|
|
return services.BuildServiceProvider();
|
|
}
|
|
}
|
|
}
|