From 9ceefa820cf91b4524ab90a1d26d6f5d1381208b Mon Sep 17 00:00:00 2001 From: "harald.martini@student.tugraz.at" <harald.martini@student.tugraz.at> Date: Wed, 2 Jun 2021 11:19:14 +0200 Subject: [PATCH] Added empty heatpump configurations to error list in auxiliary viewmodel --- .../InterimStageBusVehicleViewModel_v2_8.cs | 6 +-- .../MultistageAuxiliariesViewModel.cs | 53 +++++++++++++++++-- .../MultistageJobViewModel_v0_1.cs | 48 ++++++++++++++--- 3 files changed, 93 insertions(+), 14 deletions(-) diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/InterimStageBusVehicleViewModel_v2_8.cs b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/InterimStageBusVehicleViewModel_v2_8.cs index 40816aa329..0ca13d0fff 100644 --- a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/InterimStageBusVehicleViewModel_v2_8.cs +++ b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/InterimStageBusVehicleViewModel_v2_8.cs @@ -1063,19 +1063,19 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation switch (propertyName) { case nameof(Manufacturer): if (string.IsNullOrWhiteSpace(Manufacturer)) { - result = "Manufacturer cannot be empty"; + result = "Manufacturer must not be empty"; } break; case nameof(ManufacturerAddress): if (string.IsNullOrWhiteSpace(ManufacturerAddress)) { - result = "Manufacturer address cannot be empty"; + result = "Manufacturer address must not be empty"; } break; case nameof(VIN): if (string.IsNullOrEmpty(VIN)) { - result = "VIN cannot be empty"; + result = "VIN must not be empty"; } break; case nameof(AirdragModifiedEnum): diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageAuxiliariesViewModel.cs b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageAuxiliariesViewModel.cs index 997d39e5c4..1a6f3eae23 100644 --- a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageAuxiliariesViewModel.cs +++ b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageAuxiliariesViewModel.cs @@ -515,12 +515,30 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation break; } + if (result == null) + { + if (Errors.ContainsKey(columnName)) + Errors.Remove(columnName); + } + else + { + Errors[columnName] = result; + } + + return result; } } - string IDataErrorInfo.Error => throw new NotImplementedException(); + private Dictionary<string, string> Errors { get; } = new Dictionary<string, string>(); + + public bool HasErrors + { + get => !Errors.IsNullOrEmpty(); + + } + string IDataErrorInfo.Error => String.Join(",", Errors.Values); #endregion } @@ -797,12 +815,41 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation } } - public string Error { get => String.Join(",", Errors.Values); } + public string Error + { + get + { + string result = string.Empty; + var auxVmError = String.Join(",", Errors.Values); + result = auxVmError; + if (HeatPumpConfigurationsPassenger != null) { + foreach (var heatPumpConfiguration in HeatPumpConfigurationsPassenger) { + if (heatPumpConfiguration.HasErrors) { + result += "," + ((IDataErrorInfo)heatPumpConfiguration).Error; + } + } + } + + return result; + } + } + public bool HasErrors { get { - return !Error.IsNullOrEmpty(); + var auxVmHasErrors = !Error.IsNullOrEmpty(); + var passengerHeatPumpsHaveError = false; + if (HeatPumpConfigurationsPassenger != null) { + foreach (var heatPump in HeatPumpConfigurationsPassenger) { + if (heatPump.HasErrors) { + passengerHeatPumpsHaveError = true; + break; + } + } + } + + return auxVmHasErrors || passengerHeatPumpsHaveError; } } diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageJobViewModel_v0_1.cs b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageJobViewModel_v0_1.cs index cc970c9f52..2c30de1641 100644 --- a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageJobViewModel_v0_1.cs +++ b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageJobViewModel_v0_1.cs @@ -1,6 +1,7 @@ using System; using System.CodeDom; using System.Collections.Generic; +using System.ComponentModel; using System.Diagnostics; using System.IO; using System.Linq; @@ -10,6 +11,7 @@ using System.Windows.Input; using System.Windows.Navigation; using System.Xml; using System.Xml.Linq; +using Castle.Core.Internal; using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Models; using TUGraz.VectoCore.InputData.FileIO.JSON; @@ -104,11 +106,25 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation return _saveVifCommand ?? new RelayCommand(() => { if (_manufacturingStageViewModel.Vehicle is IMultistageVehicleViewModel vehicleViewModel) { - if (vehicleViewModel.HasErrors) - { - _dialogHelper.Value.ShowMessageBox("Vehicle\n" + string.Join("\n", vehicleViewModel.Errors.Values) - + (vehicleViewModel.MultistageAuxiliariesViewModel.HasErrors ? ("\nAuxiliaries\n" + string.Join("\n", vehicleViewModel.MultistageAuxiliariesViewModel.Errors.Values)) : ""), - "Error"); + if (vehicleViewModel.HasErrors) { + var errorMessage = "Vehicle\n"; + var vehicleErrorInfo = vehicleViewModel as IDataErrorInfo; + errorMessage += vehicleErrorInfo.Error.Replace(",", "\n"); + + var auxiliariesErrorInfo = + vehicleViewModel.MultistageAuxiliariesViewModel as IDataErrorInfo; + if (!auxiliariesErrorInfo.Error.IsNullOrEmpty()) { + errorMessage += "Auxiliaries\n"; + errorMessage += auxiliariesErrorInfo.Error.Replace(",", "\n"); + } + + + //_dialogHelper.Value.ShowMessageBox("Vehicle\n" + string.Join("\n", vehicleViewModel.Errors.Values) + // + (vehicleViewModel.MultistageAuxiliariesViewModel.HasErrors ? ("\nAuxiliaries\n" + string.Join("\n", vehicleViewModel.MultistageAuxiliariesViewModel.Errors.Values)) : ""), + //"Error"); + + _dialogHelper.Value.ShowMessageBox(errorMessage, "Error", MessageBoxButton.OK, + MessageBoxImage.Error); return; } } else { @@ -203,9 +219,25 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation if(_manufacturingStageViewModel.Vehicle is IMultistageVehicleViewModel vehicleViewModel) { if (vehicleViewModel.HasErrors) { - _dialogHelper.Value.ShowMessageBox("Vehicle\n" + string.Join("\n", vehicleViewModel.Errors.Values) - + (vehicleViewModel.MultistageAuxiliariesViewModel.HasErrors ? ("\nAuxiliaries\n" + string.Join("\n", vehicleViewModel.MultistageAuxiliariesViewModel.Errors.Values)) : ""), - "Error"); + var errorMessage = "Vehicle\n"; + var vehicleErrorInfo = vehicleViewModel as IDataErrorInfo; + errorMessage += vehicleErrorInfo.Error.Replace(",", "\n"); + + var auxiliariesErrorInfo = + vehicleViewModel.MultistageAuxiliariesViewModel as IDataErrorInfo; + if (!auxiliariesErrorInfo.Error.IsNullOrEmpty()) + { + errorMessage += "\n Auxiliaries \n"; + errorMessage += auxiliariesErrorInfo.Error.Replace(",", "\n"); + } + + _dialogHelper.Value.ShowMessageBox(errorMessage, "Error", MessageBoxButton.OK, + MessageBoxImage.Error); + return; + + //_dialogHelper.Value.ShowMessageBox("Vehicle\n" + string.Join("\n", vehicleViewModel.Errors.Values) + // + (vehicleViewModel.MultistageAuxiliariesViewModel.HasErrors ? ("\nAuxiliaries\n" + string.Join("\n", vehicleViewModel.MultistageAuxiliariesViewModel.Errors.Values)) : ""), + // "Error"); return; } } -- GitLab