using DaSaSo.Domain.Model; using DaSaSo.Domain.Services; using DaSaSo.EntityFramework; using DaSaSo.EntityFramework.Services; using DaSaSo.ViewModel; using DaSaSo.ViewModel.Factories; using DaSaSo.ViewModel.Interface; using DaSaSo.ViewModel.State.ActualState; using DaSaSo.ViewModel.State.Navigation; using Microsoft.Extensions.DependencyInjection; using System; using System.Windows; namespace DaSaSo.Wpf { /// /// Interaction logic for App.xaml /// public partial class App : Application { protected override void OnStartup(StartupEventArgs e) { IServiceProvider serviceProvider = CreateServiceProvider(); MainWindow? window = new MainWindow() { DataContext = serviceProvider.GetRequiredService() }; window.Show(); base.OnStartup(e); } private IServiceProvider CreateServiceProvider() { IServiceCollection services = new ServiceCollection(); services.AddSingleton(); services.AddSingleton, ClientDataService>(); services.AddSingleton(); services.AddSingleton, HomeViewModelFactory>(); //services.AddSingleton>(); services.AddSingleton, ClientListViewModelFactory>((services) => new ClientListViewModelFactory( services.GetRequiredService(), new ViewModelFactoryRenavigator( services.GetRequiredService(), services.GetRequiredService>() ) )); services.AddSingleton, ClientEditViewModelFactory>((services) => new ClientEditViewModelFactory( services.GetRequiredService(), new ViewModelFactoryRenavigator( services.GetRequiredService(), services.GetRequiredService>() ) )); //services.AddSingleton(); services.AddScoped(); services.AddScoped(); services.AddScoped(); return services.BuildServiceProvider(); } } }