Gui neu angelegt
This commit is contained in:
45
StammGenerator/Commands/AsyncCommandBase.cs
Normal file
45
StammGenerator/Commands/AsyncCommandBase.cs
Normal file
@@ -0,0 +1,45 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Input;
|
||||
|
||||
namespace StammGenerator.Commands
|
||||
{
|
||||
internal abstract class AsyncCommandBase : ICommand
|
||||
{
|
||||
bool _isExecuting = false;
|
||||
public event EventHandler? CanExecuteChanged;
|
||||
|
||||
public bool IsExecuting
|
||||
{
|
||||
get => _isExecuting;
|
||||
set
|
||||
{
|
||||
_isExecuting = value;
|
||||
CanExecuteChanged?.Invoke(this, new EventArgs());
|
||||
}
|
||||
}
|
||||
|
||||
protected void OnCanExecuteChanged()
|
||||
{
|
||||
CanExecuteChanged?.Invoke(this, new EventArgs());
|
||||
}
|
||||
|
||||
|
||||
public virtual bool CanExecute(object? parameter)
|
||||
{
|
||||
return !IsExecuting;
|
||||
}
|
||||
|
||||
public async void Execute(object? parameter)
|
||||
{
|
||||
IsExecuting = true;
|
||||
await ExecuteAsync(parameter);
|
||||
IsExecuting = false;
|
||||
}
|
||||
|
||||
public abstract Task ExecuteAsync(object? parameter);
|
||||
}
|
||||
}
|
||||
30
StammGenerator/Commands/HaltungAddCommand.cs
Normal file
30
StammGenerator/Commands/HaltungAddCommand.cs
Normal file
@@ -0,0 +1,30 @@
|
||||
using SewerStammGen.Shared.Domain;
|
||||
using StammGenerator.Interface;
|
||||
using StammGenerator.ViewModel;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace StammGenerator.Commands
|
||||
{
|
||||
internal class HaltungAddCommand : AsyncCommandBase
|
||||
{
|
||||
private readonly IActualState actualState;
|
||||
private readonly IRenavigator renavigator;
|
||||
|
||||
public HaltungAddCommand(IActualState actualState, IRenavigator renavigator)
|
||||
{
|
||||
this.actualState = actualState;
|
||||
this.renavigator = renavigator;
|
||||
}
|
||||
|
||||
public override async Task ExecuteAsync(object? parameter)
|
||||
{
|
||||
Kanal haltung = new Kanal()
|
||||
{
|
||||
Id = -1,
|
||||
Projekt = new Projekt() { Id = actualState.ProjektID },
|
||||
};
|
||||
actualState.SetHaltung(haltung);
|
||||
renavigator.Renavigate();
|
||||
}
|
||||
}
|
||||
}
|
||||
30
StammGenerator/Commands/HaltungEditCommand.cs
Normal file
30
StammGenerator/Commands/HaltungEditCommand.cs
Normal file
@@ -0,0 +1,30 @@
|
||||
using StammGenerator.Commands;
|
||||
using StammGenerator.Interface;
|
||||
using StammGenerator.ViewModel;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace StammGenerator.Commands
|
||||
{
|
||||
internal class HaltungEditCommand : AsyncCommandBase
|
||||
{
|
||||
|
||||
private IActualState actualState;
|
||||
private IRenavigator renavigator;
|
||||
private HaltungListViewModel haltungListViewModel;
|
||||
|
||||
|
||||
public HaltungEditCommand(IActualState actualState, IRenavigator renavigator, HaltungListViewModel haltungListViewModel)
|
||||
{
|
||||
|
||||
this.actualState = actualState;
|
||||
this.renavigator = renavigator;
|
||||
this.haltungListViewModel = haltungListViewModel;
|
||||
}
|
||||
|
||||
public override async Task ExecuteAsync(object? parameter)
|
||||
{
|
||||
actualState.SetHaltung(haltungListViewModel.SelectedHaltung);
|
||||
renavigator.Renavigate();
|
||||
}
|
||||
}
|
||||
}
|
||||
38
StammGenerator/Commands/HaltungEditSaveCommand.cs
Normal file
38
StammGenerator/Commands/HaltungEditSaveCommand.cs
Normal file
@@ -0,0 +1,38 @@
|
||||
using SewerStammGen.Shared.Contracts;
|
||||
using SewerStammGen.Shared.Domain;
|
||||
using StammGenerator.Commands;
|
||||
using StammGenerator.Interface;
|
||||
using StammGenerator.ViewModel;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace StammGenerator.Commands
|
||||
{
|
||||
internal class HaltungEditSaveCommand : AsyncCommandBase
|
||||
{
|
||||
private readonly IHaltungDataService _haltungDataService;
|
||||
private readonly IRenavigator _renavigator;
|
||||
private readonly Kanal _model;
|
||||
|
||||
public HaltungEditSaveCommand(IHaltungDataService haltungDataService,IRenavigator renavigator,HaltungEditViewModel haltungEditViewModel)
|
||||
{
|
||||
|
||||
this._haltungDataService = haltungDataService;
|
||||
this._renavigator = renavigator;
|
||||
this._model = haltungEditViewModel.Model;
|
||||
}
|
||||
|
||||
public override async Task ExecuteAsync(object? parameter)
|
||||
{
|
||||
if(_model.Id == -1) // Neu anlegen
|
||||
{
|
||||
await _haltungDataService.Create(_model);
|
||||
}
|
||||
else
|
||||
{
|
||||
await _haltungDataService.Update(_model);
|
||||
}
|
||||
|
||||
_renavigator.Renavigate();
|
||||
}
|
||||
}
|
||||
}
|
||||
27
StammGenerator/Commands/ProjectExportCommand.cs
Normal file
27
StammGenerator/Commands/ProjectExportCommand.cs
Normal file
@@ -0,0 +1,27 @@
|
||||
using SewerStammGen.Shared.Domain;
|
||||
using Shared.Contracts;
|
||||
using StammGenerator.Commands;
|
||||
using StammGenerator.ViewModel;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace StammGenerator.Commands
|
||||
{
|
||||
internal class ProjectExportCommand : AsyncCommandBase
|
||||
{
|
||||
private readonly IActualState _actualState;
|
||||
private readonly IExport _export;
|
||||
|
||||
public ProjectExportCommand(IActualState actualState)
|
||||
{
|
||||
_actualState = actualState;
|
||||
|
||||
}
|
||||
|
||||
public override async Task ExecuteAsync(object? parameter)
|
||||
{
|
||||
await _export.Export(new List<Kanal>(), new List<Schacht>());
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
42
StammGenerator/Commands/ProjektAddCommand.cs
Normal file
42
StammGenerator/Commands/ProjektAddCommand.cs
Normal file
@@ -0,0 +1,42 @@
|
||||
using SewerStammGen.Shared.Contracts;
|
||||
using SewerStammGen.Shared.Domain;
|
||||
using StammGenerator.Commands;
|
||||
using StammGenerator.Interface;
|
||||
using StammGenerator.ViewModel;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace StammGenerator.Commands
|
||||
{
|
||||
internal class ProjektAddCommand : AsyncCommandBase
|
||||
{
|
||||
private readonly IActualState _actualState;
|
||||
private readonly IProjektDataService _generic;
|
||||
private readonly IRenavigator _renavigator;
|
||||
|
||||
public ProjektAddCommand(IProjektDataService generic, IActualState actualState, IRenavigator renavigator)
|
||||
{
|
||||
_renavigator = renavigator;
|
||||
_generic = generic;
|
||||
_actualState = actualState;
|
||||
}
|
||||
|
||||
public override async Task ExecuteAsync(object? parameter)
|
||||
{
|
||||
Projekt newProjekt = new Projekt()
|
||||
{
|
||||
Erstelldatum = "",
|
||||
Strasse = "",
|
||||
Ort = "",
|
||||
Projektname = "",
|
||||
Auftraggeber = new Auftraggeber(),
|
||||
Schaechte = new List<Schacht>(),
|
||||
Kanaele = new List<Kanal>()
|
||||
};
|
||||
newProjekt = await _generic.Create(newProjekt);
|
||||
_actualState.SetProjekt(newProjekt);
|
||||
_renavigator.Renavigate();
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
34
StammGenerator/Commands/ProjektEditCommand.cs
Normal file
34
StammGenerator/Commands/ProjektEditCommand.cs
Normal file
@@ -0,0 +1,34 @@
|
||||
using SewerStammGen.Shared.Domain;
|
||||
using Shared.Contracts;
|
||||
using StammGenerator.Commands;
|
||||
using StammGenerator.Interface;
|
||||
using StammGenerator.ViewModel;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace StammGenerator.Commands
|
||||
{
|
||||
internal class ProjektEditCommand : AsyncCommandBase
|
||||
{
|
||||
private IDataService<Projekt> _dataService;
|
||||
private IActualState _actualState;
|
||||
private IRenavigator _renavigator;
|
||||
private ProjektListViewModel _projektListViewModel;
|
||||
|
||||
|
||||
public ProjektEditCommand(IDataService<Projekt> dataService, IActualState actualState, IRenavigator renavigator, ProjektListViewModel projektListViewModel)
|
||||
{
|
||||
_dataService = dataService;
|
||||
_actualState = actualState;
|
||||
_renavigator = renavigator;
|
||||
_projektListViewModel = projektListViewModel;
|
||||
}
|
||||
|
||||
public override async Task ExecuteAsync(object? parameter)
|
||||
{
|
||||
|
||||
_actualState.SetProjekt(_projektListViewModel.SelectedProjekt);
|
||||
_renavigator.Renavigate();
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
24
StammGenerator/Commands/ProjektSelectCommand.cs
Normal file
24
StammGenerator/Commands/ProjektSelectCommand.cs
Normal file
@@ -0,0 +1,24 @@
|
||||
using StammGenerator.Commands;
|
||||
using StammGenerator.ViewModel;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace StammGenerator.Commands
|
||||
{
|
||||
internal class ProjektSelectCommand : AsyncCommandBase
|
||||
{
|
||||
private readonly IActualState _actualState;
|
||||
private readonly ProjektListViewModel _projektListViewModel;
|
||||
|
||||
public ProjektSelectCommand(IActualState actualState, ProjektListViewModel projektListViewModel)
|
||||
{
|
||||
_actualState = actualState;
|
||||
_projektListViewModel = projektListViewModel;
|
||||
}
|
||||
|
||||
public override async Task ExecuteAsync(object? parameter)
|
||||
{
|
||||
if (_projektListViewModel.SelectedProjekt == null) return;
|
||||
_actualState.SetProjekt(_projektListViewModel.SelectedProjekt);
|
||||
}
|
||||
}
|
||||
}
|
||||
31
StammGenerator/Commands/SchachtAddCommand.cs
Normal file
31
StammGenerator/Commands/SchachtAddCommand.cs
Normal file
@@ -0,0 +1,31 @@
|
||||
using SewerStammGen.Shared.Domain;
|
||||
using StammGenerator.Commands;
|
||||
using StammGenerator.Interface;
|
||||
using StammGenerator.ViewModel;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace StammGenerator.Commands
|
||||
{
|
||||
class SchachtAddCommand : AsyncCommandBase
|
||||
{
|
||||
private readonly IActualState actualState;
|
||||
private readonly IRenavigator renavigator;
|
||||
|
||||
|
||||
public SchachtAddCommand(IActualState actualState, IRenavigator renavigator)
|
||||
{
|
||||
this.actualState = actualState;
|
||||
this.renavigator = renavigator;
|
||||
}
|
||||
|
||||
public override async Task ExecuteAsync(object? parameter)
|
||||
{
|
||||
Schacht newSchacht = new Schacht()
|
||||
{
|
||||
Projekt = new Projekt() { Id = actualState.ProjektID },
|
||||
};
|
||||
actualState.SetSchacht(newSchacht);
|
||||
renavigator.Renavigate();
|
||||
}
|
||||
}
|
||||
}
|
||||
30
StammGenerator/Commands/SchachtDeleteCommand.cs
Normal file
30
StammGenerator/Commands/SchachtDeleteCommand.cs
Normal file
@@ -0,0 +1,30 @@
|
||||
using SewerStammGen.Shared.Contracts;
|
||||
using StammGenerator.Commands;
|
||||
using StammGenerator.Interface;
|
||||
using StammGenerator.ViewModel;
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace StammGenerator.Commands
|
||||
{
|
||||
class SchachtDeleteCommand : AsyncCommandBase
|
||||
{
|
||||
private ISchachtDataService schachtService;
|
||||
private IActualState actualState;
|
||||
private IRenavigator renavigator;
|
||||
private ManholeListViewModel manholeListViewModel;
|
||||
|
||||
public SchachtDeleteCommand(ISchachtDataService schachtService, IActualState actualState, IRenavigator renavigator, ManholeListViewModel manholeListViewModel)
|
||||
{
|
||||
this.schachtService = schachtService;
|
||||
this.actualState = actualState;
|
||||
this.renavigator = renavigator;
|
||||
this.manholeListViewModel = manholeListViewModel;
|
||||
}
|
||||
|
||||
public override Task ExecuteAsync(object? parameter)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
||||
28
StammGenerator/Commands/SchachtEditCommand.cs
Normal file
28
StammGenerator/Commands/SchachtEditCommand.cs
Normal file
@@ -0,0 +1,28 @@
|
||||
using StammGenerator.Commands;
|
||||
using StammGenerator.Interface;
|
||||
using StammGenerator.ViewModel;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace StammGenerator.Commands
|
||||
{
|
||||
class SchachtEditCommand : AsyncCommandBase
|
||||
{
|
||||
|
||||
private IActualState actualState;
|
||||
private IRenavigator renavigator;
|
||||
private ManholeListViewModel manholeListViewModel;
|
||||
|
||||
public SchachtEditCommand(IActualState actualState, IRenavigator renavigator, ManholeListViewModel manholeListViewModel)
|
||||
{
|
||||
this.actualState = actualState;
|
||||
this.renavigator = renavigator;
|
||||
this.manholeListViewModel = manholeListViewModel;
|
||||
}
|
||||
|
||||
public override async Task ExecuteAsync(object? parameter)
|
||||
{
|
||||
actualState.SetSchacht(manholeListViewModel.SelectedSchacht);
|
||||
renavigator.Renavigate();
|
||||
}
|
||||
}
|
||||
}
|
||||
28
StammGenerator/Commands/UpdateCurrentViewModelCommand.cs
Normal file
28
StammGenerator/Commands/UpdateCurrentViewModelCommand.cs
Normal file
@@ -0,0 +1,28 @@
|
||||
using StammGenerator.Commands;
|
||||
using StammGenerator.Enum;
|
||||
using StammGenerator.Interface;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace StammGenerator.Commands
|
||||
{
|
||||
internal class UpdateCurrentViewModelCommand : AsyncCommandBase
|
||||
{
|
||||
private INavigator _navigator;
|
||||
private readonly IViewModelAbstractFactory _viewModelFactory;
|
||||
|
||||
public UpdateCurrentViewModelCommand(INavigator navigator, IViewModelAbstractFactory viewModelFactory)
|
||||
{
|
||||
_navigator = navigator;
|
||||
_viewModelFactory = viewModelFactory;
|
||||
}
|
||||
|
||||
public override async Task ExecuteAsync(object? parameter)
|
||||
{
|
||||
if(parameter is EMainWindowViewType)
|
||||
{
|
||||
EMainWindowViewType viewType = (EMainWindowViewType)parameter;
|
||||
_navigator.CurrentViewModel = _viewModelFactory.CreateViewModel(viewType);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user