diff --git a/DaSaSo.ViewModel/Commands/EditImpregnationCommand.cs b/DaSaSo.ViewModel/Commands/EditImpregnationCommand.cs index 0594ca5..fa9d7b2 100644 --- a/DaSaSo.ViewModel/Commands/EditImpregnationCommand.cs +++ b/DaSaSo.ViewModel/Commands/EditImpregnationCommand.cs @@ -14,20 +14,24 @@ namespace DaSaSo.ViewModel.Commands private IDataService _impregnationService; private ImpregnierungListViewModel _impregnierungListViewModel; private IRenavigator _editRenavigator; + private IActualProject _actualProject; public EditImpregnationCommand( IDataService impregnationService, ImpregnierungListViewModel impregnierungListViewModel, + IActualProject actualProject, IRenavigator editRenavigator) { _impregnationService = impregnationService; _impregnierungListViewModel = impregnierungListViewModel; + _actualProject = actualProject; _editRenavigator = editRenavigator; } - public override Task ExecuteAsync(object? parameter) + public override async Task ExecuteAsync(object? parameter) { - throw new NotImplementedException(); + _actualProject.SetImpregnation(_impregnierungListViewModel.SelectedImpregnation); + _editRenavigator.Renavigate(); } } } diff --git a/DaSaSo.ViewModel/ImpregnierungEditViewModel.cs b/DaSaSo.ViewModel/ImpregnierungEditViewModel.cs index 35dd611..b34a2f5 100644 --- a/DaSaSo.ViewModel/ImpregnierungEditViewModel.cs +++ b/DaSaSo.ViewModel/ImpregnierungEditViewModel.cs @@ -1,4 +1,6 @@ -using System; +using DaSaSo.Domain.Model; +using DaSaSo.ViewModel.Interface; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -8,5 +10,52 @@ namespace DaSaSo.ViewModel { public class ImpregnierungEditViewModel : BaseViewModel { + private Impregnation _model; + + public int DN + { + get => _model.DN; + set + { + _model.DN = value; + } + } + public string LinerCharge + { + get => _model.LinerNumber; + set + { + _model.LinerNumber = value; + } + } + public decimal Wandstärke + { + get => _model.WallThickness; + set + { + _model.WallThickness = value; + } + } + public decimal LinerLänge + { + get => _model.Linerlength; + set + { + _model.Linerlength = value; + } + } + public string Imprägniernummer + { + get => _model.Number; + set + { + _model.Number = value; + } + } + + public ImpregnierungEditViewModel(IActualProject actualProject) + { + _model = actualProject.AktuellImpregnation; + } } } diff --git a/DaSaSo.ViewModel/ImpregnierungListViewModel.cs b/DaSaSo.ViewModel/ImpregnierungListViewModel.cs index e42378a..c8c3f9c 100644 --- a/DaSaSo.ViewModel/ImpregnierungListViewModel.cs +++ b/DaSaSo.ViewModel/ImpregnierungListViewModel.cs @@ -46,7 +46,7 @@ namespace DaSaSo.ViewModel } } - public ImpregnierungListViewModel(IDataService impregnationService, IRenavigator editRenavigator) + public ImpregnierungListViewModel(IDataService impregnationService,IActualProject actualProject, IRenavigator editRenavigator) { IsLoading = true; Impregnations = new ObservableCollection(); @@ -63,7 +63,7 @@ namespace DaSaSo.ViewModel }); //AddImpregnationCommand = //new AddImpregnationCommand(_impregnationService, editRenavigator); - EditImpregnationCommand = new EditImpregnationCommand(_impregnationService, this, editRenavigator); + EditImpregnationCommand = new EditImpregnationCommand(_impregnationService, this,actualProject, editRenavigator); LoadImpregnations(); } diff --git a/DaSaSo.ViewModel/Interface/IActualProject.cs b/DaSaSo.ViewModel/Interface/IActualProject.cs index c236929..a191fb9 100644 --- a/DaSaSo.ViewModel/Interface/IActualProject.cs +++ b/DaSaSo.ViewModel/Interface/IActualProject.cs @@ -19,12 +19,14 @@ namespace DaSaSo.ViewModel.Interface Buildingsite AktuellBaustelle { get; } SewerObject AktuellSewerObject { get; } SewerDamage AktuellSewerDamage { get; } + Impregnation AktuellImpregnation { get; } void SetClient(Client client, bool notification = true); void SetProject(Project project, bool notification = true); void SetBuildingSite(Buildingsite buildingsite); void SetSewerObject(SewerObject sewerObject, bool notification = true); void SetSewerDamage(SewerDamage sewerDamage, bool notification = true); + void SetImpregnation(Impregnation impregnation, bool notification = true); void ResetProject(); void ResetBuildingSite(); } diff --git a/DaSaSo.ViewModel/State/ActualState/ActualProject.cs b/DaSaSo.ViewModel/State/ActualState/ActualProject.cs index 26c6627..3b2cd20 100644 --- a/DaSaSo.ViewModel/State/ActualState/ActualProject.cs +++ b/DaSaSo.ViewModel/State/ActualState/ActualProject.cs @@ -14,8 +14,8 @@ namespace DaSaSo.ViewModel.State.ActualState public Buildingsite? AktuellBaustelle { get; private set; } public Project? AktuellProjekt { get; private set; } public SewerObject? AktuellSewerObject { get; private set; } - public SewerDamage? AktuellSewerDamage { get; private set; } + public Impregnation? AktuellImpregnation { get; private set; } #region events @@ -57,7 +57,6 @@ namespace DaSaSo.ViewModel.State.ActualState public void SetProject(Project project, bool notification = true) { - AktuellProjekt = project; if(notification) OnProjectChanged(); @@ -76,7 +75,12 @@ namespace DaSaSo.ViewModel.State.ActualState OnSewerObjectChanged(); } - + public void SetImpregnation(Impregnation impregnation, bool notification = true) + { + AktuellImpregnation = impregnation; + if (notification) + return; // TODO notification wird aktuell nicht benötigt + } public void ResetProject() { SetProject(null); diff --git a/DaSaSo.Wpf/App.xaml.cs b/DaSaSo.Wpf/App.xaml.cs index 1646dda..e660e14 100644 --- a/DaSaSo.Wpf/App.xaml.cs +++ b/DaSaSo.Wpf/App.xaml.cs @@ -41,119 +41,7 @@ namespace DaSaSo.Wpf .AddDBContext(); } - /* return Host.CreateDefaultBuilder(args) - .ConfigureAppConfiguration(c=> - { - c.AddJsonFile("appsettings.json"); - c.AddEnvironmentVariables(); - }) - .ConfigureServices((context, services) => - { - - string connectionString = context.Configuration.GetConnectionString("default"); - - services.AddDbContext(o => o.UseSqlServer(connectionString)); - services.AddSingleton(new DaSaSoDbContextFactory(connectionString)); - - services.AddSingleton, ClientDataService>(); - services.AddSingleton, ProjectDataService>(); - services.AddSingleton, BuildingsiteDataService>(); - services.AddSingleton, SewerObjectDataService>(); - services.AddSingleton(); - services.AddSingleton(); - services.AddSingleton(); - services.AddSingleton(); - - - services.AddSingleton(); - services.AddSingleton(); - services.AddSingleton>(services => - { - return () => new ClientEditViewModel( - services.GetRequiredService>(), - services.GetRequiredService(), - new ViewModelDelegateRenavigator( - services.GetRequiredService() - )); - }); - services.AddSingleton>(services => - { - return () => new HomeViewModel(); - }); - services.AddSingleton>(services => - { - return () => new SewerStammdatenViewModel( - services.GetRequiredService() - ); - }); - services.AddSingleton>(services => - { - return () => new SewerDamageListViewModel(); - }); - - services.AddSingleton>(services => - { - return () => new ClientListViewModel( - services.GetRequiredService>(), - services.GetRequiredService(), - new ViewModelDelegateRenavigator( - services.GetRequiredService() - )); - }); - services.AddSingleton>(services => - { - return () => new SewerMainListViewModel( - services.GetRequiredService>(), - services.GetRequiredService(), - services.GetRequiredService(), - services.GetRequiredService(), - new ViewModelDelegateRenavigator( - services.GetRequiredService() - ), - services.GetRequiredService() - ); - }); - services.AddSingleton>(services => - { - return () => new ProjectListViewModel( - services.GetRequiredService>(), - services.GetRequiredService(), - new ViewModelDelegateRenavigator( - services.GetRequiredService()), - services.GetRequiredService() - - ); - }); - - services.AddSingleton>(services => - { - return () => new BuildingsiteListViewModel( - services.GetRequiredService>(), - services.GetRequiredService(), - new ViewModelDelegateRenavigator( - services.GetRequiredService()), - services.GetRequiredService() - ); - }); - - services.AddSingleton>(services => - { - return () => new SewerObjectListViewModel( - services.GetRequiredService>(), - services.GetRequiredService(), - services.GetRequiredService() - ); - }); - - //services.AddSingleton(); - services.AddScoped(); - services.AddScoped(); - services.AddScoped(); - - services.AddScoped(); - }); - } - */ + protected override void OnStartup(StartupEventArgs e) { Application.Current.DispatcherUnhandledException += Current_DispatcherUnhandledException; @@ -177,7 +65,7 @@ namespace DaSaSo.Wpf protected override async void OnExit(ExitEventArgs e) { - _host.StopAsync(); + await _host.StopAsync(); _host.Dispose(); base.OnExit(e); } diff --git a/DaSaSo.Wpf/HostBuilders/AddViewModelsHostBuilderExtensions.cs b/DaSaSo.Wpf/HostBuilders/AddViewModelsHostBuilderExtensions.cs index 0f4ee0f..ad6f874 100644 --- a/DaSaSo.Wpf/HostBuilders/AddViewModelsHostBuilderExtensions.cs +++ b/DaSaSo.Wpf/HostBuilders/AddViewModelsHostBuilderExtensions.cs @@ -73,12 +73,15 @@ namespace DaSaSo.Wpf.HostBuilders { return () => new ImpregnierungListViewModel( services.GetRequiredService>(), + services.GetRequiredService(), services.GetRequiredService>() ); }); services.AddTransient>(services => { - return () => new ImpregnierungEditViewModel(); + return () => new ImpregnierungEditViewModel( + services.GetRequiredService() + ); }); services.AddTransient>(services => diff --git a/DaSaSo.Wpf/View/Impregnation/ImpregnationEditView.xaml b/DaSaSo.Wpf/View/Impregnation/ImpregnationEditView.xaml index 8ff0816..82ab701 100644 --- a/DaSaSo.Wpf/View/Impregnation/ImpregnationEditView.xaml +++ b/DaSaSo.Wpf/View/Impregnation/ImpregnationEditView.xaml @@ -3,10 +3,40 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" - xmlns:local="clr-namespace:DaSaSo.Wpf.View.Impregnation" + xmlns:local="clr-namespace:DaSaSo.Wpf.View.Impregnation" xmlns:viewmodel="clr-namespace:DaSaSo.ViewModel;assembly=DaSaSo.ViewModel" d:DataContext="{d:DesignInstance Type=viewmodel:ImpregnierungEditViewModel}" mc:Ignorable="d" d:DesignHeight="450" d:DesignWidth="800"> - + + + + + + + + + + + + + + +