using DaSaSo.Domain.Model; using DaSaSo.Domain.Services; using DaSaSo.Domain.Services.SewerPointServices; using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DaSaSo.Wpf.ViewModel.Commands { class SaveSewerStammdatenCommand : AsyncCommandBase { private readonly SewerStammdatenViewModel _stammdatenViewModel; private IDataService _dataService; private readonly ISewerpointService _sewerPointService; public SaveSewerStammdatenCommand(SewerStammdatenViewModel stammdatenViewModel, IDataService dataService, ISewerpointService sewerpointService) { _stammdatenViewModel = stammdatenViewModel; _dataService = dataService; _sewerPointService = sewerpointService; } public override async Task ExecuteAsync(object? parameter) { if (_stammdatenViewModel._oberepunkt != null) { if ((_stammdatenViewModel.Model.PunktOben == null) || (_stammdatenViewModel._oberepunkt != _stammdatenViewModel.Model.PunktOben.Objektnummer)) { SewerPoint punktOben = await _sewerPointService.CreateOrFindSewerpoint(_stammdatenViewModel._oberepunkt); _stammdatenViewModel.Model.PunktOben = punktOben; } } if (_stammdatenViewModel._unterepunkt != null) { if ((_stammdatenViewModel.Model.PunktUnten == null) || (_stammdatenViewModel._unterepunkt != _stammdatenViewModel.Model.PunktUnten.Objektnummer)) { SewerPoint punktUnten = await _sewerPointService.CreateOrFindSewerpoint(_stammdatenViewModel._unterepunkt); _stammdatenViewModel.Model.PunktUnten = punktUnten; } } _stammdatenViewModel.Model = await _dataService.Update(_stammdatenViewModel.Model.Id, _stammdatenViewModel.Model); Trace.WriteLine("Daten gespeichert"); } } }