70 lines
2.7 KiB
C#
70 lines
2.7 KiB
C#
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
|
|
{
|
|
/// <summary>
|
|
/// Interaction logic for App.xaml
|
|
/// </summary>
|
|
public partial class App : Application
|
|
{
|
|
protected override void OnStartup(StartupEventArgs e)
|
|
{
|
|
IServiceProvider serviceProvider = CreateServiceProvider();
|
|
|
|
MainWindow? window = new MainWindow() { DataContext = serviceProvider.GetRequiredService<MainWindowViewModel>() };
|
|
window.Show();
|
|
base.OnStartup(e);
|
|
}
|
|
|
|
private IServiceProvider CreateServiceProvider()
|
|
{
|
|
IServiceCollection services = new ServiceCollection();
|
|
|
|
services.AddSingleton<DaSaSoDbContextFactory>();
|
|
services.AddSingleton<IDataService<Client>, ClientDataService>();
|
|
|
|
|
|
services.AddSingleton<IViewModelAbstractFactory, ViewModelAbstractFactory>();
|
|
services.AddSingleton<IViewModelFactory<HomeViewModel>, HomeViewModelFactory>();
|
|
//services.AddSingleton<IRenavigator, ViewModelFactoryRenavigator<ClientEditViewModel>>();
|
|
services.AddSingleton<IViewModelFactory<ClientListViewModel>, ClientListViewModelFactory>((services) =>
|
|
new ClientListViewModelFactory(
|
|
services.GetRequiredService<IActualProject>(),
|
|
new ViewModelFactoryRenavigator<ClientEditViewModel>(
|
|
services.GetRequiredService<INavigator>(),
|
|
services.GetRequiredService<IViewModelFactory<ClientEditViewModel>>()
|
|
)
|
|
));
|
|
services.AddSingleton<IViewModelFactory<ClientEditViewModel>, ClientEditViewModelFactory>((services) =>
|
|
new ClientEditViewModelFactory(
|
|
services.GetRequiredService<IActualProject>(),
|
|
new ViewModelFactoryRenavigator<HomeViewModel>(
|
|
services.GetRequiredService<INavigator>(),
|
|
services.GetRequiredService<IViewModelFactory<HomeViewModel>>()
|
|
)
|
|
|
|
));
|
|
|
|
//services.AddSingleton<INavigator, Navigator>();
|
|
services.AddScoped<IActualProject, ActualProject>();
|
|
services.AddScoped<INavigator, Navigator>();
|
|
|
|
services.AddScoped<MainWindowViewModel>();
|
|
|
|
|
|
return services.BuildServiceProvider();
|
|
}
|
|
}
|
|
}
|