Files
SewerGenerator/StammGenerator/Commands/ProjectExportCommand.cs
Damian Wessels c933989d19 XML exporter fertiggestellt
Verschiedene Versionen implementiert
2023-07-26 15:56:57 +02:00

52 lines
2.1 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 ProjektListViewModel _projektListViewModel;
//private Projekt _selectedProjekt;
private readonly IHaltungDataService _haltungDataService;
private readonly ISchachtDataService _schachtDataService;
public ProjectExportCommand(ProjektListViewModel projektListViewModel, IHaltungDataService haltungDataService, ISchachtDataService schachtDataService)
{
_projektListViewModel = projektListViewModel;
_haltungDataService = haltungDataService;
_schachtDataService = schachtDataService;
}
public override async Task ExecuteAsync(object? parameter)
{
if (_projektListViewModel.SelectedProjekt == null) return;
IWWLog wwLog = null ;
Projekt _selectedProjekt = _projektListViewModel.SelectedProjekt;
try
{
IExport export = ExporterFactory.Export(_selectedProjekt.ExportType);
IEnumerable<Kanal> haltungen = await _haltungDataService.GetAllByProjekt(_selectedProjekt);
IEnumerable<Schacht> schaechte = await _schachtDataService.GetAllByProjekt(_selectedProjekt);
await export.Export(_selectedProjekt.Id.ToString(), _selectedProjekt.Kodierungssystem,_selectedProjekt.ExportType, haltungen.ToList(), schaechte.ToList(), wwLog);
}
catch(NotImplementedException)
{
MessageBoxResult result = MessageBox.Show(string.Format("Schnittstelle Export format: {0} ist nicht Implementiert", _selectedProjekt.ExportType), "Fehlende Implementation", MessageBoxButton.OK, MessageBoxImage.Exclamation);
}
}
}
}