Files
csharp-uebung/FahzeugWPF/App.xaml.cs
2025-06-16 15:01:00 +02:00

49 lines
1.9 KiB
C#

using FahrzeugDatenBank;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using System.IO;
using System.Windows;
namespace FahzeugWPF
{
/// <summary>
/// Interaction logic for App.xaml
/// </summary>
public partial class App : Application
{
public static ServiceProvider ServiceProvider { get; private set; }
public App()
{
IConfiguration configuration = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("appsettings.json", optional: false, reloadOnChange: true).Build();
ServiceCollection services = new ServiceCollection();
services.AddScoped<IKonfigurationsleser>(sp => new Konfigurationsleser(configuration));
services.AddScoped(sp => new DatenbankKontext(sp.GetRequiredService<IKonfigurationsleser>().LiesDBVerebindung()));
// services.AddScoped<IFahrzeugRepository>(sp => new FahrzeugRepository(sp.GetRequiredService<IKonfigurationsleser>().LiesDBVerebindung()));
services.AddScoped<IFahrzeugRepository, FahrzeugOrmRepository>();
services.AddScoped<FahrzeugeModell>();
services.AddScoped<EinfuegenModel>();
services.AddScoped<EinfuegenWindow>();
services.AddSingleton<MainWindowViewModel>();
services.AddSingleton<MainWindow>();
ServiceProvider = services.BuildServiceProvider();
}
protected override void OnStartup(StartupEventArgs e)
{
this.MainWindow = ServiceProvider.GetService<MainWindow>();
this.MainWindow.DataContext = ServiceProvider.GetService<MainWindowViewModel>();
this.MainWindow.Show();
}
private string GetConnectionString()
{
return "Server=localhost;User ID=admin;Password=admin;Database=FahrzeugDB";
}
}
}