diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000..e68a880
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,4 @@
+[*.cs]
+
+# CA1416: Validate platform compatibility
+dotnet_diagnostic.CA1416.severity = none
diff --git a/DaSaSo.Domain/DaSaSo.Domain.csproj b/DaSaSo.Domain/DaSaSo.Domain.csproj
index 2b40fef..b001d77 100644
--- a/DaSaSo.Domain/DaSaSo.Domain.csproj
+++ b/DaSaSo.Domain/DaSaSo.Domain.csproj
@@ -5,4 +5,8 @@
disable
+
+
+
+
diff --git a/DaSaSo.Domain/Enums/ESewerWindowViewType.cs b/DaSaSo.Domain/Enums/ESewerWindowViewType.cs
index 1626b5c..e71ec91 100644
--- a/DaSaSo.Domain/Enums/ESewerWindowViewType.cs
+++ b/DaSaSo.Domain/Enums/ESewerWindowViewType.cs
@@ -3,6 +3,7 @@
public enum ESewerWindowViewType
{
SewerStammdaten,
- SewerDamageList
+ SewerDamageList,
+ SewerDamageEdit
}
}
diff --git a/DaSaSo.Domain/Model/SewerDamage.cs b/DaSaSo.Domain/Model/SewerDamage.cs
index 33fc5e0..fc62d32 100644
--- a/DaSaSo.Domain/Model/SewerDamage.cs
+++ b/DaSaSo.Domain/Model/SewerDamage.cs
@@ -3,6 +3,7 @@
[Flags]
public enum EDamageType
{
+ NONE = 0,
Riss = 1,
Bruch = 2,
Scherbe = 4,
@@ -18,9 +19,10 @@
[Flags]
public enum EPreparationType
{
+ NONE = 0,
CleanedHD = 1,
CleanedMechanisch = 2,
- CleanedRoborter = 4,
+ CleanedRoboter = 4,
FaekalienFrei = 8
}
public class SewerDamage : DomainObject
diff --git a/DaSaSo.EntityFramework/DaSaSoDbContextFactory.cs b/DaSaSo.EntityFramework/DaSaSoDbContextFactory.cs
index 3341ebb..6bbc14f 100644
--- a/DaSaSo.EntityFramework/DaSaSoDbContextFactory.cs
+++ b/DaSaSo.EntityFramework/DaSaSoDbContextFactory.cs
@@ -22,7 +22,7 @@ namespace DaSaSo.EntityFramework
public DaSaSoDbContext CreateDbContext()
{
- DbContextOptionsBuilder? options = new DbContextOptionsBuilder();
+ DbContextOptionsBuilder? options = new();
_configureDbContext(options);
//_connectionString = "Host = localhost; Database = dasaso; Username = kansan; Password = kansan";
//options.UseNpgsql(_connectionString);
@@ -34,7 +34,7 @@ namespace DaSaSo.EntityFramework
{
var options = new DbContextOptionsBuilder();
options.UseNpgsql("Host = localhost; Database = dasaso; Username = kansan; Password = kansan");
- DaSaSoDbContext result = new DaSaSoDbContext(options.Options);
+ DaSaSoDbContext result = new(options.Options);
return result;
}
/*
diff --git a/DaSaSo.EntityFramework/Services/BuildingsiteDataService.cs b/DaSaSo.EntityFramework/Services/BuildingsiteDataService.cs
index f739623..e52ae0d 100644
--- a/DaSaSo.EntityFramework/Services/BuildingsiteDataService.cs
+++ b/DaSaSo.EntityFramework/Services/BuildingsiteDataService.cs
@@ -37,12 +37,10 @@ namespace DaSaSo.EntityFramework.Services
public async Task Get(int id)
{
- using (DaSaSoDbContext context = _contextFactory.CreateDbContext())
- {
- Buildingsite entity = await context.Buildingsites.FirstOrDefaultAsync((e) => e.Id == id);
+ using DaSaSoDbContext context = _contextFactory.CreateDbContext();
+ Buildingsite entity = await context.Buildingsites.FirstOrDefaultAsync((e) => e.Id == id);
- return entity;
- }
+ return entity;
}
public Task> GetAll()
@@ -54,11 +52,9 @@ namespace DaSaSo.EntityFramework.Services
{
// Get Clientid
int id = project.Id;
- using (DaSaSoDbContext context = _contextFactory.CreateDbContext())
- {
- IEnumerable entities = await context.Buildingsites.Where(x => x.Project.Id == id).ToListAsync();
- return entities;
- }
+ using DaSaSoDbContext context = _contextFactory.CreateDbContext();
+ IEnumerable entities = await context.Buildingsites.Where(x => x.Project.Id == id).ToListAsync();
+ return entities;
}
public async Task Update(int id, Buildingsite entity)
diff --git a/DaSaSo.EntityFramework/Services/ClientDataService.cs b/DaSaSo.EntityFramework/Services/ClientDataService.cs
index e22f91c..0e815c5 100644
--- a/DaSaSo.EntityFramework/Services/ClientDataService.cs
+++ b/DaSaSo.EntityFramework/Services/ClientDataService.cs
@@ -39,22 +39,18 @@ namespace DaSaSo.EntityFramework.Services
public async Task Get(int id)
{
- using (DaSaSoDbContext context = _contextFactory.CreateDbContext())
- {
- Client entity = await context.Clients.Include(a => a.Projects).FirstOrDefaultAsync((e) => e.Id == id);
+ using DaSaSoDbContext context = _contextFactory.CreateDbContext();
+ Client entity = await context.Clients.Include(a => a.Projects).FirstOrDefaultAsync((e) => e.Id == id);
- return entity;
- }
+ return entity;
}
public async Task> GetAll()
{
- using (DaSaSoDbContext context = _contextFactory.CreateDbContext())
- {
- IEnumerable entities = await context.Clients.ToListAsync();
+ using DaSaSoDbContext context = _contextFactory.CreateDbContext();
+ IEnumerable entities = await context.Clients.ToListAsync();
- return entities;
- }
+ return entities;
}
public async Task Update(int id, Client entity)
diff --git a/DaSaSo.EntityFramework/Services/Common/NonQueryDataService.cs b/DaSaSo.EntityFramework/Services/Common/NonQueryDataService.cs
index 802523e..4947e5e 100644
--- a/DaSaSo.EntityFramework/Services/Common/NonQueryDataService.cs
+++ b/DaSaSo.EntityFramework/Services/Common/NonQueryDataService.cs
@@ -3,6 +3,7 @@ using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.ChangeTracking;
using System;
using System.Collections.Generic;
+using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
@@ -19,43 +20,35 @@ namespace DaSaSo.EntityFramework.Services.Common
}
public async Task Create(T entity)
{
- using (DaSaSoDbContext context = _contextFactory.CreateDbContext())
- {
- EntityEntry createdEntity = await context.Set().AddAsync(entity);
- await context.SaveChangesAsync();
- return createdEntity.Entity;
- }
+ using DaSaSoDbContext context = _contextFactory.CreateDbContext();
+ EntityEntry createdEntity = await context.Set().AddAsync(entity);
+ await context.SaveChangesAsync();
+ return createdEntity.Entity;
}
public T CreateNonAsync(T entity)
{
- using (DaSaSoDbContext context = _contextFactory.CreateDbContext())
- {
- EntityEntry createdEntity = context.Set().Add(entity);
- context.SaveChanges();
- return createdEntity.Entity;
- }
+ using DaSaSoDbContext context = _contextFactory.CreateDbContext();
+ EntityEntry createdEntity = context.Set().Add(entity);
+ context.SaveChanges();
+ return createdEntity.Entity;
}
public async Task Delete(int id)
{
- using (DaSaSoDbContext context = _contextFactory.CreateDbContext())
- {
- T entity = await context.Set().FirstOrDefaultAsync((e) => e.Id == id);
- context.Set().Remove(entity);
- await context.SaveChangesAsync();
- return true;
- }
+ using DaSaSoDbContext context = _contextFactory.CreateDbContext();
+ T entity = await context.Set().FirstOrDefaultAsync((e) => e.Id == id);
+ context.Set().Remove(entity);
+ await context.SaveChangesAsync();
+ return true;
}
public async Task Update(int id, T entity)
{
- using (DaSaSoDbContext context = _contextFactory.CreateDbContext())
- {
- entity.Id = id;
- context.Set().Update(entity);
- await context.SaveChangesAsync();
- return entity;
- }
+ using DaSaSoDbContext context = _contextFactory.CreateDbContext();
+ entity.Id = id;
+ context.Set().Update(entity);
+ await context.SaveChangesAsync();
+ return entity;
}
}
}
diff --git a/DaSaSo.ViewModel/BuildingsiteListViewModel.cs b/DaSaSo.ViewModel/BuildingsiteListViewModel.cs
index 105f415..bc78f61 100644
--- a/DaSaSo.ViewModel/BuildingsiteListViewModel.cs
+++ b/DaSaSo.ViewModel/BuildingsiteListViewModel.cs
@@ -47,7 +47,7 @@ namespace DaSaSo.ViewModel
{
_actualProject = actualProject;
_renavigator = renavigator;
- _buildingSiteDataService = buildingSiteDataService as BuildingsiteDataService;
+ _buildingSiteDataService = (BuildingsiteDataService)buildingSiteDataService;
Buildingsites = new ObservableCollection();
EditCommand = new EditBuildingsiteCommand(buildingSiteDataService,actualProject,renavigator,buildingsiteService,this);
SelectCommand = new SelectBuildingsiteCommand(actualProject, this);
diff --git a/DaSaSo.ViewModel/ClientEditViewModel.cs b/DaSaSo.ViewModel/ClientEditViewModel.cs
index fc88421..b266cd3 100644
--- a/DaSaSo.ViewModel/ClientEditViewModel.cs
+++ b/DaSaSo.ViewModel/ClientEditViewModel.cs
@@ -14,7 +14,7 @@ namespace DaSaSo.ViewModel
public class ClientEditViewModel : BaseViewModel
{
private Client _model;
- private IDataService _dataService;
+ private readonly IDataService _dataService;
private readonly IActualProject _actualProject;
private readonly IRenavigator renavigator;
@@ -32,9 +32,9 @@ namespace DaSaSo.ViewModel
this._model = _actualProject.AktuellClient;
}
- private void SaveClient()
+ private async void SaveClient()
{
- _dataService.Update(Model.Id, Model);
+ await _dataService.Update(Model.Id, Model);
renavigator.Renavigate();
}
}
diff --git a/DaSaSo.ViewModel/ClientListViewModel.cs b/DaSaSo.ViewModel/ClientListViewModel.cs
index 00bb5cc..e980430 100644
--- a/DaSaSo.ViewModel/ClientListViewModel.cs
+++ b/DaSaSo.ViewModel/ClientListViewModel.cs
@@ -19,9 +19,7 @@ namespace DaSaSo.ViewModel
{
public ObservableCollection Clients { get; }
private Client? _selectedClient;
- private IDataService _dataService;
- private readonly IRenavigator renavigator;
- IEnumerable? result;
+ private readonly IDataService _dataService;
bool _isLoading = true;
public ICommand SelectCommand { get; set; }
@@ -63,19 +61,14 @@ namespace DaSaSo.ViewModel
{
Clients = new ObservableCollection();
_dataService = dataService;
- this.renavigator = renavigator;
+
LoadClient();
- SelectCommand = new SelectClientCommand(actualProject, this); //= new RelayCommand(SelectClient, () => SelectedClient != null);
+ SelectCommand = new SelectClientCommand(dataService,actualProject, this);
EditCommand = new EditClientCommand(_dataService,actualProject, editRenavigator, this);
AddNewClientCommand = new AddClientCommand(_dataService, actualProject, editRenavigator, this);
}
- ~ClientListViewModel()
- {
-
- }
-
public async void LoadClient()
{
IsLoading = true;
@@ -86,7 +79,7 @@ namespace DaSaSo.ViewModel
IsLoading = false;
}
- private void InitCollection(ObservableCollection target, IEnumerable source)
+ private static void InitCollection(ObservableCollection target, IEnumerable source)
{
target.Clear();
foreach (var i in source)
diff --git a/DaSaSo.ViewModel/Commands/SelectClientCommand.cs b/DaSaSo.ViewModel/Commands/SelectClientCommand.cs
index 4546807..0e3e160 100644
--- a/DaSaSo.ViewModel/Commands/SelectClientCommand.cs
+++ b/DaSaSo.ViewModel/Commands/SelectClientCommand.cs
@@ -1,4 +1,6 @@
-using DaSaSo.ViewModel.Interface;
+using DaSaSo.Domain.Model;
+using DaSaSo.Domain.Services;
+using DaSaSo.ViewModel.Interface;
using System;
using System.Collections.Generic;
using System.ComponentModel;
@@ -14,19 +16,24 @@ namespace DaSaSo.ViewModel.Commands
private readonly IActualProject _actualProject;
private readonly ClientListViewModel _clientListViewModel;
+ private readonly IDataService _dataservice;
public override bool CanExecute(object? parameter)
{
return _clientListViewModel.CanSelectClient;
}
- public SelectClientCommand(IActualProject actualProject, ClientListViewModel clientListViewModel)
+ public SelectClientCommand(
+ IDataService dataService,
+ IActualProject actualProject,
+ ClientListViewModel clientListViewModel)
{
_actualProject = actualProject;
_clientListViewModel = clientListViewModel;
- _clientListViewModel.PropertyChanged += _clientListViewModel_PropertyChanged;
+ _clientListViewModel.PropertyChanged += ClientListViewModel_PropertyChanged;
+ _dataservice = dataService;
}
- private void _clientListViewModel_PropertyChanged(object? sender, PropertyChangedEventArgs e)
+ private void ClientListViewModel_PropertyChanged(object? sender, PropertyChangedEventArgs e)
{
if(e.PropertyName == nameof(_clientListViewModel.CanSelectClient))
{
@@ -36,8 +43,10 @@ namespace DaSaSo.ViewModel.Commands
public override async Task ExecuteAsync(object? parameter)
{
- var s = _clientListViewModel.SelectedClient;
- _actualProject.SetClient(s);
+ Client? _selectedClient = _clientListViewModel.SelectedClient;
+ if (_selectedClient == null) return;
+ _selectedClient = await _dataservice.Get(_selectedClient.Id);
+ _actualProject.SetClient(_selectedClient);
}
}
diff --git a/DaSaSo.ViewModel/Commands/SelectDamageCommand.cs b/DaSaSo.ViewModel/Commands/SelectDamageCommand.cs
new file mode 100644
index 0000000..6e275b9
--- /dev/null
+++ b/DaSaSo.ViewModel/Commands/SelectDamageCommand.cs
@@ -0,0 +1,24 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DaSaSo.ViewModel.Commands
+{
+ class SelectDamageCommand : AsyncCommandBase
+ {
+ private readonly SewerMainListViewModel _sewerMainListViewModel;
+
+ public SelectDamageCommand(SewerMainListViewModel sewerMainListViewModel)
+ {
+ _sewerMainListViewModel = sewerMainListViewModel;
+ }
+
+ public override Task ExecuteAsync(object? parameter)
+ {
+ var d = _sewerMainListViewModel;
+ throw new NotImplementedException();
+ }
+ }
+}
diff --git a/DaSaSo.ViewModel/Controls/SewerDamageControllViewModel.cs b/DaSaSo.ViewModel/Controls/SewerDamageControllViewModel.cs
new file mode 100644
index 0000000..fc09bc3
--- /dev/null
+++ b/DaSaSo.ViewModel/Controls/SewerDamageControllViewModel.cs
@@ -0,0 +1,50 @@
+using DaSaSo.Domain.Model;
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DaSaSo.ViewModel.Controls
+{
+ public class SewerDamageControllViewModel : BaseViewModel
+ {
+ public bool Riss { get; set; }
+ public bool Bruch { get; set; }
+ public bool Scherbe { get; set; }
+ public bool Wurzel { get; set; }
+ public bool Inkrustation { get; set; }
+ public bool Ablagerungen { get; set; }
+ public bool EinrageneStutzen { get; set; }
+ public bool Infiltration { get; set; }
+ public SewerDamageControllViewModel(EDamageType damageType)
+ {
+ Riss = damageType.HasFlag(EDamageType.Riss);
+ Bruch = damageType.HasFlag(EDamageType.Bruch);
+ Scherbe = damageType.HasFlag(EDamageType.Scherbe);
+
+ Wurzel = damageType.HasFlag(EDamageType.Wurzel);
+ Inkrustation = damageType.HasFlag(EDamageType.Inkrustation);
+ Ablagerungen = damageType.HasFlag(EDamageType.Ablagerung);
+
+ EinrageneStutzen = damageType.HasFlag(EDamageType.EinrageneStutzen);
+ Infiltration = damageType.HasFlag(EDamageType.Infiltration);
+ }
+
+ public EDamageType CalculateDamageFlags()
+ {
+ EDamageType result = EDamageType.NONE;
+ if (Riss) result |= EDamageType.Riss;
+ if (Bruch) result |= EDamageType.Bruch;
+ if (Scherbe) result |= EDamageType.Scherbe;
+ if (Wurzel) result |= EDamageType.Wurzel;
+ if (Inkrustation) result |= EDamageType.Inkrustation;
+ if (Ablagerungen) result |= EDamageType.Ablagerung;
+ if (EinrageneStutzen) result |= EDamageType.EinrageneStutzen;
+ if (Infiltration) result |= EDamageType.Infiltration;
+
+ return result;
+ }
+ }
+}
diff --git a/DaSaSo.ViewModel/Controls/SewerPreperationControllViewModel.cs b/DaSaSo.ViewModel/Controls/SewerPreperationControllViewModel.cs
new file mode 100644
index 0000000..0a52177
--- /dev/null
+++ b/DaSaSo.ViewModel/Controls/SewerPreperationControllViewModel.cs
@@ -0,0 +1,36 @@
+using DaSaSo.Domain.Model;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DaSaSo.ViewModel.Controls
+{
+ public class SewerPreperationControllViewModel : BaseViewModel
+ {
+ public bool HD { get; set; }
+ public bool Mechanisch { get; set; }
+ public bool Roboter { get; set; }
+ public bool Faekalienfrei { get; set; }
+
+ public SewerPreperationControllViewModel(EPreparationType preparationType)
+ {
+ HD = preparationType.HasFlag(EPreparationType.CleanedHD);
+ Mechanisch = preparationType.HasFlag(EPreparationType.CleanedMechanisch);
+ Roboter = preparationType.HasFlag(EPreparationType.CleanedRoboter);
+ Faekalienfrei = preparationType.HasFlag(EPreparationType.FaekalienFrei);
+ }
+
+ public EPreparationType CalculatePreparationFlags()
+ {
+ EPreparationType result = EPreparationType.NONE;
+ if (HD) result |= EPreparationType.CleanedHD;
+ if (Mechanisch) result |= EPreparationType.CleanedMechanisch;
+ if (Roboter) result |= EPreparationType.CleanedRoboter;
+ if (Faekalienfrei) result |= EPreparationType.FaekalienFrei;
+
+ return result;
+ }
+ }
+}
diff --git a/DaSaSo.ViewModel/Factories/SewerWindowViewModelFactory.cs b/DaSaSo.ViewModel/Factories/SewerWindowViewModelFactory.cs
index 771b1c9..c64490b 100644
--- a/DaSaSo.ViewModel/Factories/SewerWindowViewModelFactory.cs
+++ b/DaSaSo.ViewModel/Factories/SewerWindowViewModelFactory.cs
@@ -12,15 +12,17 @@ namespace DaSaSo.ViewModel.Factories
{
private CreateViewModel _createSewerStammdatenViewModel;
private CreateViewModel _createSewerDamageListViewModel;
+ private CreateViewModel _createSewerDamageEditViewModel;
public SewerWindowViewModelFactory(
CreateViewModel createSewerStammdatenViewModel,
- CreateViewModel createSewerDamageListViewModel
-
+ CreateViewModel createSewerDamageListViewModel,
+ CreateViewModel createSewerDamageEditViewModel
)
{
_createSewerStammdatenViewModel = createSewerStammdatenViewModel;
_createSewerDamageListViewModel = createSewerDamageListViewModel;
+ _createSewerDamageEditViewModel = createSewerDamageEditViewModel;
}
public BaseViewModel CreateViewModel(ESewerWindowViewType viewType)
@@ -29,6 +31,7 @@ namespace DaSaSo.ViewModel.Factories
{
case ESewerWindowViewType.SewerStammdaten: return _createSewerStammdatenViewModel();
case ESewerWindowViewType.SewerDamageList: return _createSewerDamageListViewModel();
+ case ESewerWindowViewType.SewerDamageEdit: return _createSewerDamageEditViewModel();
default:
throw new ArgumentException("The Viewtype does not have a ViewModel", "viewType");
}
diff --git a/DaSaSo.ViewModel/SewerDamageEditViewModel.cs b/DaSaSo.ViewModel/SewerDamageEditViewModel.cs
new file mode 100644
index 0000000..7507190
--- /dev/null
+++ b/DaSaSo.ViewModel/SewerDamageEditViewModel.cs
@@ -0,0 +1,49 @@
+using DaSaSo.Domain.Model;
+using DaSaSo.ViewModel.Controls;
+using DaSaSo.ViewModel.Interface;
+using Microsoft.Toolkit.Mvvm.Input;
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DaSaSo.ViewModel
+{
+ public class SewerDamageEditViewModel : BaseViewModel
+ {
+ private SewerDamage? _damage;
+
+ public SewerDamageControllViewModel damageControllViewModel { get; set; }
+ public SewerPreperationControllViewModel preperationControllViewModel { get; set; }
+ public IRelayCommand Berechne { get; set; }
+
+ public SewerDamage? Damage
+ {
+ get => _damage;
+ set
+ {
+ _damage = value;
+ OnPropertyChanged();
+ }
+ }
+
+ public SewerDamageEditViewModel(IActualProject actualProject)
+ {
+ if (actualProject.AktuellSewerDamage == null) throw new NullReferenceException(nameof(actualProject.AktuellSewerDamage));
+ Damage = actualProject.AktuellSewerDamage;
+
+ damageControllViewModel = new SewerDamageControllViewModel(Damage.DamageType);
+ preperationControllViewModel = new SewerPreperationControllViewModel(Damage.PreparationType);
+ Berechne = new RelayCommand(() =>
+ {
+ Damage.DamageType = damageControllViewModel.CalculateDamageFlags();
+ Damage.PreparationType = preperationControllViewModel.CalculatePreparationFlags();
+
+ });
+
+ }
+
+ }
+}
diff --git a/DaSaSo.ViewModel/SewerMainListViewModel.cs b/DaSaSo.ViewModel/SewerMainListViewModel.cs
index 8f5581b..e15f8ce 100644
--- a/DaSaSo.ViewModel/SewerMainListViewModel.cs
+++ b/DaSaSo.ViewModel/SewerMainListViewModel.cs
@@ -17,14 +17,15 @@ namespace DaSaSo.ViewModel
{
public class SewerMainListViewModel : BaseViewModel
{
- private ISewerMainNavigator _navigator { get; set; }
+ private ISewerMainNavigator Navigator { get; set; }
private readonly SewerObjectDataService _dataservice;
private readonly ISewerObjectService _sewerObjectService;
private readonly IRenavigator _renavigator;
- private IActualProject _actualProject { get; set; }
+ private IActualProject ActualProject { get; set; }
public ICommand UpdateCurrentSewerViewModelCommand { get; }
public ICommand CloseCommand { get; set; }
- public BaseViewModel CurrentSewerViewModel => _navigator.CurrentViewModel;
+ public ICommand SchadenCommand { get; set; }
+ public BaseViewModel CurrentSewerViewModel => Navigator.CurrentViewModel;
public bool IsLoading
{
@@ -38,8 +39,8 @@ namespace DaSaSo.ViewModel
}
}
}
- string _schaden = "llooo";
- public string Schaden
+ private SewerDamage _schaden;
+ public SewerDamage Schaden
{
get => _schaden;
set
@@ -48,43 +49,54 @@ namespace DaSaSo.ViewModel
OnPropertyChanged();
}
}
- public string Strasse { get => _actualProject.AktuellSewerObject.StreetName; }
- public string AktualObject { get => _actualProject.AktuellSewerObject.ObjektName; }
+
+ public string Strasse { get => ActualProject.AktuellSewerObject.StreetName; }
+ public string AktualObject { get => ActualProject.AktuellSewerObject.ObjektName; }
bool _isLoading = true;
- public bool CanSaveSewer => !string.IsNullOrEmpty(_actualProject.AktuellSewerObject.StreetName);
+ public bool CanSaveSewer => !string.IsNullOrEmpty(ActualProject.AktuellSewerObject.StreetName);
- public SewerMainListViewModel(IDataService dataService, ISewerMainNavigator navigator,IActualProject actualProject, IViewModelSewerMainFactory viewModelFactory, IRenavigator renavigator, ISewerObjectService sewerObjectService, ISewerpointService sewerpointService)
+ public SewerMainListViewModel(
+ IDataService dataService,
+ ISewerMainNavigator navigator,
+ IActualProject actualProject,
+ IViewModelSewerMainFactory viewModelFactory,
+ IRenavigator renavigator,
+ ISewerObjectService sewerObjectService,
+ ISewerpointService sewerpointService
+ )
{
- _navigator = navigator;
- _actualProject = actualProject;
+ Navigator = navigator;
+ ActualProject = actualProject;
_dataservice = (SewerObjectDataService)dataService;
_renavigator = renavigator;
_sewerObjectService = sewerObjectService;
- CloseCommand = new SaveSewerCommand(_dataservice,_actualProject,_sewerObjectService,_renavigator,_navigator); //RelayCommand(SaveSewer);
+ CloseCommand = new SaveSewerCommand(_dataservice,ActualProject,_sewerObjectService,_renavigator,Navigator); //RelayCommand(SaveSewer);
LoadModel();
- UpdateCurrentSewerViewModelCommand = new UpdateCurrentSewerViewModelCommand(_navigator, viewModelFactory);
- _navigator.StateChanged += () => OnPropertyChanged(nameof(CurrentSewerViewModel));
- _actualProject.SewerDamageChanged += _actualProject_SewerDamageChanged;
+ UpdateCurrentSewerViewModelCommand = new UpdateCurrentSewerViewModelCommand(Navigator, viewModelFactory);
+ Navigator.StateChanged += () => OnPropertyChanged(nameof(CurrentSewerViewModel));
+ ActualProject.SewerDamageChanged += ActualProject_SewerDamageChanged;
+
+ //SchadenCommand = UpdateCurrentSewerViewModelCommand.Execute(); // new SelectDamageCommand(this);
}
- private void _actualProject_SewerDamageChanged(object? sender, EventArgs e)
+ private void ActualProject_SewerDamageChanged(object? sender, EventArgs e)
{
- Schaden = _actualProject.AktuellSewerDamage.Distance.ToString();
+ Schaden = ActualProject.AktuellSewerDamage;
OnPropertyChanged(nameof(Schaden));
}
private async void LoadModel()
{
IsLoading = true;
- SewerObject sewer = await _dataservice.Get(_actualProject.AktuellSewerObject.Id);
- _actualProject.SetSewerObject(sewer,false);
+ SewerObject sewer = await _dataservice.Get(ActualProject.AktuellSewerObject.Id);
+ ActualProject.SetSewerObject(sewer,false);
IsLoading = false;
}
public override void Dispose()
{
- _navigator.StateChanged -= () => OnPropertyChanged(nameof(CurrentSewerViewModel));
+ Navigator.StateChanged -= () => OnPropertyChanged(nameof(CurrentSewerViewModel));
base.Dispose();
}
}
diff --git a/DaSaSo.ViewModel/State/ActualState/ActualProject.cs b/DaSaSo.ViewModel/State/ActualState/ActualProject.cs
index b9ac273..26c6627 100644
--- a/DaSaSo.ViewModel/State/ActualState/ActualProject.cs
+++ b/DaSaSo.ViewModel/State/ActualState/ActualProject.cs
@@ -48,6 +48,8 @@ namespace DaSaSo.ViewModel.State.ActualState
#endregion
public void SetClient(Client client, bool notification = true)
{
+ //ResetProject();
+ //ResetBuildingSite();
AktuellClient = client;
if(notification)
OnClientChanged();
@@ -55,6 +57,7 @@ namespace DaSaSo.ViewModel.State.ActualState
public void SetProject(Project project, bool notification = true)
{
+
AktuellProjekt = project;
if(notification)
OnProjectChanged();
diff --git a/DaSaSo.ViewModel/Window/MainWindowViewModel.cs b/DaSaSo.ViewModel/Window/MainWindowViewModel.cs
index 786dcb4..2cf65b5 100644
--- a/DaSaSo.ViewModel/Window/MainWindowViewModel.cs
+++ b/DaSaSo.ViewModel/Window/MainWindowViewModel.cs
@@ -23,6 +23,12 @@ namespace DaSaSo.ViewModel
public sealed class MainWindowViewModel : BaseViewModel
{
private readonly IViewModelAbstractFactory viewModelFactory;
+
+ public MainWindowViewModel(IViewModelAbstractFactory viewModelFactory)
+ {
+ this.viewModelFactory = viewModelFactory;
+ }
+
private readonly IActualProject _actualProject;
private readonly IDataService _clientDataService;
private readonly IDataService _projectDataService;
@@ -31,15 +37,15 @@ namespace DaSaSo.ViewModel
private string _clientname = "";
private string _projektname = "";
private string _buildingsitename = "";
- RegistryKey registry;
+ private readonly RegistryKey? registry;
const string REGISTRYKEY = "HKEY_CURRENT_USER\\Software\\Cosysda\\DaSaSo";
public bool CanSelectProject { get => _actualProject.AktuellClient != null; }
public bool CanSelectBuildingSite { get => _actualProject.AktuellProjekt != null; }
public bool CanSelectSewerObjects { get => _actualProject.AktuellBaustelle != null; }
- public IMainWindowNavigator _navigator { get; set; }
+ public IMainWindowNavigator Navigator { get; set; }
public ICommand UpdateCurrentViewModelCommand { get; }
- public BaseViewModel CurrentViewModel => _navigator.CurrentViewModel;
+ public BaseViewModel CurrentViewModel => Navigator.CurrentViewModel;
public string ClientName
{
@@ -78,13 +84,17 @@ namespace DaSaSo.ViewModel
}
}
}
- public string ApplicationTitle
+ public static string ApplicationTitle
{
get
{
string gitVersion;
+#pragma warning disable CS8600 // Converting null literal or possible null value to non-nullable type.
using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("DaSaSo.ViewModel.version.txt"))
- using (StreamReader reader = new StreamReader(stream))
+#pragma warning restore CS8600 // Converting null literal or possible null value to non-nullable type.
+#pragma warning disable CS8604 // Possible null reference argument.
+ using (StreamReader reader = new(stream))
+#pragma warning restore CS8604 // Possible null reference argument.
{
gitVersion = reader.ReadToEnd();
}
@@ -99,37 +109,37 @@ namespace DaSaSo.ViewModel
IDataService buildingsiteDataService
)
{
- this._navigator = navigator;
+ this.Navigator = navigator;
this.viewModelFactory = viewModelFactory;
_clientDataService = clientDataService;
_projectDataService = projectDataService;
_buildingsiteDataService = buildingsiteDataService;
+
+ registry = Registry.CurrentUser.OpenSubKey("Software\\Cosysda\\DaSaSo");
+ if (registry == null) InitRegistry();
- _navigator.StateChanged += _navigator_StateChanged;
+ Navigator.StateChanged += Navigator_StateChanged;
UpdateCurrentViewModelCommand = new UpdateCurrentViewModelCommand(navigator, viewModelFactory);
UpdateCurrentViewModelCommand.Execute(EMainWindowViewType.Home);
_actualProject = actualProject;
- _actualProject.ClientChanged += _actualProject_ClientChanged;
- _actualProject.ProjectChanged += _actualProject_ProjectChanged;
- _actualProject.BuildingSiteChanged += _actualProject_BuildingSiteChanged;
- _actualProject.SewerObjectChanged += _actualProject_SewerObjectChanged;
+ _actualProject.ClientChanged += ActualProject_ClientChanged;
+ _actualProject.ProjectChanged += ActualProject_ProjectChanged;
+ _actualProject.BuildingSiteChanged += ActualProject_BuildingSiteChanged;
+ _actualProject.SewerObjectChanged += ActualProject_SewerObjectChanged;
- ladeRegistry();
+ LadeRegistry();
}
- private async void ladeRegistry()
+ private async void LadeRegistry()
{
-
- registry = Registry.CurrentUser.OpenSubKey("Software\\Cosysda\\DaSaSo");
- if (registry == null) initRegistry();
int clientid = Convert.ToInt32((string)registry.GetValue("lastclient", "-1"));
if (clientid == -1)
return;
Client lastClient = await _clientDataService.Get(clientid);
if (lastClient == null)
{
- saveInRegistry("lastclient", "-1");
+ SaveInRegistry("lastclient", "-1");
return;
}
_actualProject.SetClient(lastClient);
@@ -140,64 +150,65 @@ namespace DaSaSo.ViewModel
Project lastProject = await _projectDataService.Get(projectid);
if(lastProject == null)
{
- saveInRegistry("lastproject","-1");
+ SaveInRegistry("lastproject","-1");
return;
}
_actualProject.SetProject(lastProject);
- int buildingsiteid = Convert.ToInt32((string)registry.GetValue("lastbuildingsite", "-1"));
+ string? value = registry.GetValue("lastbuildingsite", "-1") as string;
+ int buildingsiteid = Convert.ToInt32(value);
if (buildingsiteid == -1)
return;
Buildingsite lastBuildingiste = await _buildingsiteDataService.Get(buildingsiteid);
if(lastBuildingiste == null)
{
- saveInRegistry("lastbuildingsite","-1");
+ SaveInRegistry("lastbuildingsite","-1");
return;
}
_actualProject.SetBuildingSite(lastBuildingiste);
}
- private void saveInRegistry(string key, string value)
+ private static void SaveInRegistry(string key, string value)
{
Registry.SetValue(REGISTRYKEY, key, value);
}
- private void initRegistry()
+ private void InitRegistry()
{
Registry.CurrentUser.CreateSubKey("Software\\Cosysda\\DaSaSo");
- ladeRegistry();
+ LadeRegistry();
}
- private void _actualProject_SewerObjectChanged(object? sender, EventArgs e)
+ private void ActualProject_SewerObjectChanged(object? sender, EventArgs e)
{
UpdateCurrentViewModelCommand.Execute(EMainWindowViewType.SewerMainMenu);
}
- private void _navigator_StateChanged()
+ private void Navigator_StateChanged()
{
OnPropertyChanged(nameof(CurrentViewModel));
}
- private void _actualProject_BuildingSiteChanged(object? sender, EventArgs e)
+ private void ActualProject_BuildingSiteChanged(object? sender, EventArgs e)
{
- saveInRegistry("lastbuildingsite", _actualProject.AktuellBaustelle.Id.ToString());
+ SaveInRegistry("lastbuildingsite", _actualProject.AktuellBaustelle.Id.ToString());
Buildingsitename = _actualProject.AktuellBaustelle.BuildingSiteNumber;
OnPropertyChanged(nameof(CanSelectSewerObjects));
UpdateCurrentViewModelCommand.Execute(EMainWindowViewType.SewerObjects);
}
- private void _actualProject_ProjectChanged(object? sender, EventArgs e)
+ private void ActualProject_ProjectChanged(object? sender, EventArgs e)
{
- saveInRegistry("lastproject", _actualProject.AktuellProjekt.Id.ToString());
+ SaveInRegistry("lastproject", _actualProject.AktuellProjekt.Id.ToString());
Projektname = _actualProject.AktuellProjekt.Name;
OnPropertyChanged(nameof(CanSelectBuildingSite));
UpdateCurrentViewModelCommand.Execute(EMainWindowViewType.Buildingsites);
}
- private void _actualProject_ClientChanged(object? sender, EventArgs e)
+ private void ActualProject_ClientChanged(object? sender, EventArgs e)
{
- saveInRegistry("lastclient", _actualProject.AktuellClient.Id.ToString());
+ SaveInRegistry("lastclient", _actualProject.AktuellClient.Id.ToString());
ClientName = _actualProject.AktuellClient.Firstname;
OnPropertyChanged(nameof(CanSelectProject));
UpdateCurrentViewModelCommand.Execute(EMainWindowViewType.Projects);
diff --git a/DaSaSo.Wpf/Controls/SewerObjectNavigationBar.xaml b/DaSaSo.Wpf/Controls/SewerObjectNavigationBar.xaml
index 50adb3a..3551e37 100644
--- a/DaSaSo.Wpf/Controls/SewerObjectNavigationBar.xaml
+++ b/DaSaSo.Wpf/Controls/SewerObjectNavigationBar.xaml
@@ -12,7 +12,7 @@
-
+
diff --git a/DaSaSo.Wpf/Converters/EqualDamageTypeToBooleanConverter.cs b/DaSaSo.Wpf/Converters/EqualDamageTypeToBooleanConverter.cs
index 03217b2..85f8095 100644
--- a/DaSaSo.Wpf/Converters/EqualDamageTypeToBooleanConverter.cs
+++ b/DaSaSo.Wpf/Converters/EqualDamageTypeToBooleanConverter.cs
@@ -13,13 +13,14 @@ namespace DaSaSo.Wpf.Converters
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
- return (((int)value & (int)parameter) == (int)value);
-
+ bool result = (((int)value & (int)parameter) == (int)value);
+ return result;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
- throw new NotImplementedException();
+ //EDamageType result = (EDamageType)parameter;
+ return null;
}
}
}
diff --git a/DaSaSo.Wpf/DaSaSo.Wpf.csproj.user b/DaSaSo.Wpf/DaSaSo.Wpf.csproj.user
index f682e0c..da2408f 100644
--- a/DaSaSo.Wpf/DaSaSo.Wpf.csproj.user
+++ b/DaSaSo.Wpf/DaSaSo.Wpf.csproj.user
@@ -37,6 +37,15 @@
Code
+
+ Code
+
+
+ Code
+
+
+ Code
+
Code
@@ -84,6 +93,15 @@
Designer
+
+ Designer
+
+
+ Designer
+
+
+ Designer
+
Designer
diff --git a/DaSaSo.Wpf/HostBuilders/AddServicesHostBuilderExtensions.cs b/DaSaSo.Wpf/HostBuilders/AddServicesHostBuilderExtensions.cs
index 950d7e8..4604c9f 100644
--- a/DaSaSo.Wpf/HostBuilders/AddServicesHostBuilderExtensions.cs
+++ b/DaSaSo.Wpf/HostBuilders/AddServicesHostBuilderExtensions.cs
@@ -21,7 +21,7 @@ namespace DaSaSo.Wpf.HostBuilders
{
host.ConfigureServices(services =>
{
- services.AddSingleton, ClientDataService>();
+ services.AddTransient, ClientDataService>();
services.AddSingleton, ProjectDataService>();
services.AddTransient, BuildingsiteDataService>();
services.AddSingleton, SewerObjectDataService>();
diff --git a/DaSaSo.Wpf/HostBuilders/AddViewModelsHostBuilderExtensions.cs b/DaSaSo.Wpf/HostBuilders/AddViewModelsHostBuilderExtensions.cs
index 43742d0..039ca66 100644
--- a/DaSaSo.Wpf/HostBuilders/AddViewModelsHostBuilderExtensions.cs
+++ b/DaSaSo.Wpf/HostBuilders/AddViewModelsHostBuilderExtensions.cs
@@ -79,7 +79,12 @@ namespace DaSaSo.Wpf.HostBuilders
services.GetRequiredService(),
services.GetRequiredService>()//,
//services.GetRequiredService()
-
+ );
+ });
+ services.AddTransient>(services =>
+ {
+ return () => new SewerDamageEditViewModel(
+ services.GetRequiredService()
);
});
diff --git a/DaSaSo.Wpf/Sampledata/SewerDamageListSampleData.cs b/DaSaSo.Wpf/Sampledata/SewerDamageListSampleData.cs
index 5ff3577..fa03c91 100644
--- a/DaSaSo.Wpf/Sampledata/SewerDamageListSampleData.cs
+++ b/DaSaSo.Wpf/Sampledata/SewerDamageListSampleData.cs
@@ -16,7 +16,7 @@ namespace DaSaSo.Wpf.Sampledata
Damages.Add(new SewerDamage()
{
DamageType = EDamageType.Bruch | EDamageType.EinrageneStutzen,
- PreparationType = EPreparationType.CleanedHD | EPreparationType.CleanedRoborter,
+ PreparationType = EPreparationType.CleanedHD | EPreparationType.CleanedRoboter,
Distance = 12.5m
});
diff --git a/DaSaSo.Wpf/View/Project/ProjectEditView.xaml b/DaSaSo.Wpf/View/Project/ProjectEditView.xaml
index 62d4bd5..b3193e4 100644
--- a/DaSaSo.Wpf/View/Project/ProjectEditView.xaml
+++ b/DaSaSo.Wpf/View/Project/ProjectEditView.xaml
@@ -17,11 +17,12 @@
-
-
-
-
+
+
+
+
+
diff --git a/DaSaSo.Wpf/View/SewerObject/Controls/SewerDamage.xaml b/DaSaSo.Wpf/View/SewerObject/Controls/SewerDamage.xaml
new file mode 100644
index 0000000..d8b0111
--- /dev/null
+++ b/DaSaSo.Wpf/View/SewerObject/Controls/SewerDamage.xaml
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/DaSaSo.Wpf/View/SewerObject/Controls/SewerDamage.xaml.cs b/DaSaSo.Wpf/View/SewerObject/Controls/SewerDamage.xaml.cs
new file mode 100644
index 0000000..1573047
--- /dev/null
+++ b/DaSaSo.Wpf/View/SewerObject/Controls/SewerDamage.xaml.cs
@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace DaSaSo.Wpf.View.SewerObject.Controls
+{
+ ///
+ /// Interaction logic for SewerDamage.xaml
+ ///
+ public partial class SewerDamage : UserControl
+ {
+ public SewerDamage()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/DaSaSo.Wpf/View/SewerObject/Controls/SewerDamagePreparation.xaml b/DaSaSo.Wpf/View/SewerObject/Controls/SewerDamagePreparation.xaml
new file mode 100644
index 0000000..e54a579
--- /dev/null
+++ b/DaSaSo.Wpf/View/SewerObject/Controls/SewerDamagePreparation.xaml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/DaSaSo.Wpf/View/SewerObject/Controls/SewerDamagePreparation.xaml.cs b/DaSaSo.Wpf/View/SewerObject/Controls/SewerDamagePreparation.xaml.cs
new file mode 100644
index 0000000..c185962
--- /dev/null
+++ b/DaSaSo.Wpf/View/SewerObject/Controls/SewerDamagePreparation.xaml.cs
@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace DaSaSo.Wpf.View.SewerObject.Controls
+{
+ ///
+ /// Interaction logic for SewerDamagePreparation.xaml
+ ///
+ public partial class SewerDamagePreparation : UserControl
+ {
+ public SewerDamagePreparation()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/DaSaSo.Wpf/View/SewerObject/SewerDamageEditView.xaml b/DaSaSo.Wpf/View/SewerObject/SewerDamageEditView.xaml
new file mode 100644
index 0000000..df232df
--- /dev/null
+++ b/DaSaSo.Wpf/View/SewerObject/SewerDamageEditView.xaml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/DaSaSo.Wpf/View/SewerObject/SewerDamageEditView.xaml.cs b/DaSaSo.Wpf/View/SewerObject/SewerDamageEditView.xaml.cs
new file mode 100644
index 0000000..9c5adb4
--- /dev/null
+++ b/DaSaSo.Wpf/View/SewerObject/SewerDamageEditView.xaml.cs
@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace DaSaSo.Wpf.View.SewerObject
+{
+ ///
+ /// Interaction logic for SewerDamageEditView.xaml
+ ///
+ public partial class SewerDamageEditView : UserControl
+ {
+ public SewerDamageEditView()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/DaSaSo.Wpf/View/SewerObject/SewerDamageListView.xaml b/DaSaSo.Wpf/View/SewerObject/SewerDamageListView.xaml
index 7bb156a..2c97bfa 100644
--- a/DaSaSo.Wpf/View/SewerObject/SewerDamageListView.xaml
+++ b/DaSaSo.Wpf/View/SewerObject/SewerDamageListView.xaml
@@ -27,7 +27,7 @@
-
+
diff --git a/DaSaSo.Wpf/View/SewerObject/SewerMainView.xaml b/DaSaSo.Wpf/View/SewerObject/SewerMainView.xaml
index a8911b3..d0de1eb 100644
--- a/DaSaSo.Wpf/View/SewerObject/SewerMainView.xaml
+++ b/DaSaSo.Wpf/View/SewerObject/SewerMainView.xaml
@@ -15,6 +15,9 @@
+
+
+
diff --git a/DaSaSo.Wpf/my_controls.xaml b/DaSaSo.Wpf/my_controls.xaml
index acfecb6..a23a61d 100644
--- a/DaSaSo.Wpf/my_controls.xaml
+++ b/DaSaSo.Wpf/my_controls.xaml
@@ -27,4 +27,39 @@
+
+
\ No newline at end of file
diff --git a/DaSaSo.sln b/DaSaSo.sln
index 0315e9d..4a5089c 100644
--- a/DaSaSo.sln
+++ b/DaSaSo.sln
@@ -17,6 +17,11 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DaSaSo.InMemoryProvider", "
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DaSaSo.DatabaseConverter", "DaSaSo.DatabaseConverter\DaSaSo.DatabaseConverter.csproj", "{E0842F1A-E74D-4B84-BD27-3585901B0DE9}"
EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{C7F32A0F-BC57-43A4-8865-AC88C109676F}"
+ ProjectSection(SolutionItems) = preProject
+ .editorconfig = .editorconfig
+ EndProjectSection
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU