50 lines
2.0 KiB
C#
50 lines
2.0 KiB
C#
using SewerStammGen.Shared.Contracts;
|
|
using SewerStammGen.Shared.Domain;
|
|
using Shared.Contracts;
|
|
using StammGenerator.Commands;
|
|
using StammGenerator.ViewModel;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Diagnostics;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
using System.Windows;
|
|
using WWTech_KanalSchnittstelle.Exporter;
|
|
|
|
namespace StammGenerator.Commands
|
|
{
|
|
internal class ProjectExportCommand : AsyncCommandBase
|
|
{
|
|
private readonly IActualState _actualState;
|
|
private readonly IHaltungDataService _haltungDataService;
|
|
private readonly ISchachtDataService _schachtDataService;
|
|
private readonly IProjektDataService _projektDataService;
|
|
|
|
public ProjectExportCommand(IActualState actualState, IHaltungDataService haltungDataService, ISchachtDataService schachtDataService, IProjektDataService projektDataService)
|
|
{
|
|
_actualState = actualState;
|
|
_haltungDataService = haltungDataService;
|
|
_schachtDataService = schachtDataService;
|
|
_projektDataService = projektDataService;
|
|
}
|
|
|
|
public override async Task ExecuteAsync(object? parameter)
|
|
{
|
|
Projekt prj = await _projektDataService.Get(_actualState.ProjektID);
|
|
|
|
try
|
|
{
|
|
IExport export = ExporterFactory.Export(prj.ExportType);
|
|
IEnumerable<Kanal> haltungen = await _haltungDataService.GetAllByProjekt(prj);
|
|
IEnumerable<Schacht> schaechte = await _schachtDataService.GetAllByProjekt(prj);
|
|
|
|
await export.Export(_actualState.ProjektID.ToString(), prj.Kodierungssystem, haltungen.ToList(), schaechte.ToList());
|
|
}
|
|
catch(NotImplementedException)
|
|
{
|
|
MessageBoxResult result = MessageBox.Show(string.Format("Schnittstelle Export format: {0} ist nicht Implementiert", prj.ExportType), "Fehlende Implementation", MessageBoxButton.OK, MessageBoxImage.Exclamation);
|
|
}
|
|
}
|
|
}
|
|
}
|