Projekteinstellungen erweitert

This commit is contained in:
2023-04-24 13:27:39 +02:00
parent 7fd87cff09
commit 76731c3464
20 changed files with 242 additions and 116 deletions

View File

@@ -1,4 +1,5 @@
using SewerStammGen.Shared.Domain;
using SewerStammGen.Shared.Enum;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -9,6 +10,6 @@ namespace Shared.Contracts
{
public interface IExport
{
Task<bool> Export(List<Kanal> haltungen, List<Schacht> schaechte);
Task<bool> Export(string projektname,EKodierungssystem kodierungssystem,List<Kanal> haltungen, List<Schacht> schaechte);
}
}

View File

@@ -1,27 +1,49 @@
using SewerStammGen.Shared.Domain;
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 IExport _export;
private readonly IHaltungDataService _haltungDataService;
private readonly ISchachtDataService _schachtDataService;
private readonly IProjektDataService _projektDataService;
public ProjectExportCommand(IActualState actualState)
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)
{
await _export.Export(new List<Kanal>(), new List<Schacht>());
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);
}
}
}
}

View File

@@ -1,4 +1,6 @@
using System;
using SewerStammGen.Shared.Enum;
using System;
using System.CodeDom;
using System.Collections.Generic;
using System.Diagnostics;
using System.Globalization;
@@ -18,6 +20,9 @@ namespace StammGenerator.Converters
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
if (targetType == typeof(EEntwaeserung)) return (EEntwaeserung)parameter;
if (targetType == typeof(EExportType)) return (EExportType)parameter;
if (targetType == typeof(EKodierungssystem)) return (EKodierungssystem)parameter;
throw new NotImplementedException();
}
}

View File

@@ -1,26 +0,0 @@
using SewerStammGen.Shared.Domain;
using SewerStammGen.Shared.Enum;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Data;
namespace StammGenerator.Converters
{
public class ValueToEntConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return value.ToString() == parameter.ToString();
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return (EEntwaeserung)parameter;
}
}
}

View File

@@ -1,21 +0,0 @@
using SewerStammGen.Shared.Enum;
using System;
using System.Globalization;
using System.Windows.Data;
namespace StammGenerator.Converters
{
public class ValueToExportConverter: IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return value.ToString() == parameter.ToString();
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return (EExportType)parameter;
}
}
}

View File

@@ -66,6 +66,8 @@ namespace StammGenerator.HostBuilders
{
return () => new HaltungListViewModel(
services.GetRequiredService<IHaltungDataService>(),
services.GetRequiredService<ISchachtDataService>(),
services.GetRequiredService<IProjektDataService>(),
services.GetRequiredService<IActualState>(),
services.GetRequiredService<ViewModelDelegateRenavigator<HaltungEditViewModel>>()
);

View File

@@ -21,7 +21,7 @@ namespace StammGenerator.ViewModel
public ICommand AddCommand { get; set; }
public ICommand ExportCommand { get; set; }
public HaltungListViewModel(IHaltungDataService haltungDataService, IActualState actualState, IRenavigator renavigator )
public HaltungListViewModel(IHaltungDataService haltungDataService, ISchachtDataService schachtDataService, IProjektDataService projektDataService, IActualState actualState, IRenavigator renavigator )
{
_haltungen = new ObservableCollection<Kanal>();
_haltungDataService = haltungDataService;
@@ -31,7 +31,7 @@ namespace StammGenerator.ViewModel
EditCommand = new HaltungEditCommand(actualState, renavigator, this);
AddCommand = new HaltungAddCommand(actualState, renavigator);
ExportCommand = new ProjectExportCommand(actualState);
ExportCommand = new ProjectExportCommand(actualState, haltungDataService, schachtDataService,projektDataService);
LoadHaltungen();
}

View File

@@ -75,6 +75,7 @@ namespace StammGenerator.ViewModel
Speichern = new RelayCommand((x) => this.SaveProject());
this.ProjektSettingsViewModel = new ProjektSettingsViewModel();
LoadProjekt();
}
@@ -89,10 +90,13 @@ namespace StammGenerator.ViewModel
Auftraggeber = new Auftraggeber(),
};
}
this.ProjektSettingsViewModel.Projekt = _model;
OnPropertyChanged(nameof(ProjektName));
OnPropertyChanged(nameof(Erstelldatum));
OnPropertyChanged(nameof(Strasse));
OnPropertyChanged(nameof(Ort));
OnPropertyChanged(nameof(ProjektSettingsViewModel));
}
private void SaveProject()

View File

@@ -1,4 +1,5 @@
using SewerStammGen.Shared.Enum;
using SewerStammGen.Shared.Domain;
using SewerStammGen.Shared.Enum;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -12,31 +13,60 @@ namespace StammGenerator.ViewModel
public class ProjektSettingsViewModel : BaseViewModel
{
private EExportType _selectedNorm;
private Visibility _xmlVisible;
private Visibility _kandisVisible;
private ESelectedNorm _selectedNorm;
private EKodierungssystem _selectedKodier;
private Projekt _projekt = new Projekt();
public EExportType SelectedNorm
public ESelectedNorm SelectedNorm
{
get => _selectedNorm;
set
{
if(value != _selectedNorm)
if(_selectedNorm != value)
{
_selectedNorm = value;
OnPropertyChanged();
}
}
}
public EExportType SelectedExport
{
get => _projekt.ExportType;
set
{
if(value != _projekt.ExportType)
{
_projekt.ExportType = value;
if (_selectedNorm == EExportType.KANDIS)
if (_projekt.ExportType == EExportType.KANDIS)
{
KandisVisible = Visibility.Visible;
XmlVisible = Visibility.Collapsed;
}
else if(_selectedNorm == EExportType.XML)
else if(_projekt.ExportType == EExportType.XML)
{
XmlVisible = Visibility.Visible;
KandisVisible = Visibility.Collapsed;
}
OnPropertyChanged();
}
}
}
public EKodierungssystem SelectedKodier
{
get => _selectedKodier;
set
{
if(_selectedKodier != value)
{
_selectedKodier = value;
OnPropertyChanged();
}
}
}
@@ -68,10 +98,40 @@ namespace StammGenerator.ViewModel
}
public Projekt Projekt
{
get => _projekt;
set
{
if(value != _projekt)
{
_projekt = value;
//SelectedExport = _projekt.ExportType;
if(_projekt.ExportType == EExportType.KANDIS)
{
_kandisVisible = Visibility.Visible;
_xmlVisible = Visibility.Collapsed;
}
else if(_projekt.ExportType == EExportType.XML)
{
_xmlVisible = Visibility.Visible;
_kandisVisible = Visibility.Collapsed;
}
OnPropertyChanged();
OnPropertyChanged(nameof(SelectedNorm));
OnPropertyChanged(nameof(SelectedExport));
OnPropertyChanged(nameof(KandisVisible));
OnPropertyChanged(nameof(XmlVisible));
}
}
}
public ProjektSettingsViewModel()
{
SelectedNorm = EExportType.XML;
//SelectedExport = EExportType.XML;
//this.Projekt = new Projekt();
}
}
}
}

View File

@@ -9,7 +9,7 @@
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800">
<UserControl.Resources>
<converter:ValueToEntConverter x:Key="EqualValueToEntwaesserungConverter" />
<converter:EqualValueToParameterConverter x:Key="EqualValueToParameterConverter" />
</UserControl.Resources>
<Grid>
<Grid>
@@ -59,9 +59,9 @@
<TextBox Grid.Row="1" Grid.Column="1" Width="200" HorizontalAlignment="Left" Margin="5,5,5,5" Text="{Binding Durchmesser}" Grid.ColumnSpan="2" />
<TextBox Grid.Row="2" Grid.Column="1" Width="100" HorizontalAlignment="Left" Margin="5,5,5,5" Text="{Binding Haltungslaenge}" Grid.ColumnSpan="2" />
<DockPanel Grid.Row="3" Grid.Column="1" Grid.ColumnSpan="2">
<RadioButton Style="{StaticResource ToggleButtonList}" Content="Regenwasser" IsChecked="{Binding Entwaeserung, Converter={StaticResource EqualValueToEntwaesserungConverter},ConverterParameter={x:Static stat:EEntwaeserung.Regenwasser}}" />
<RadioButton Style="{StaticResource ToggleButtonList}" Content="Schmutzwasser" IsChecked="{Binding Entwaeserung, Converter={StaticResource EqualValueToEntwaesserungConverter},ConverterParameter={x:Static stat:EEntwaeserung.Schmutzwasser}}" />
<RadioButton Style="{StaticResource ToggleButtonList}" Content="Mischwasser" IsChecked="{Binding Entwaeserung, Converter={StaticResource EqualValueToEntwaesserungConverter},ConverterParameter={x:Static stat:EEntwaeserung.Mischwasser}}" />
<RadioButton Style="{StaticResource ToggleButtonList}" Content="Regenwasser" IsChecked="{Binding Entwaeserung, Converter={StaticResource EqualValueToParameterConverter},ConverterParameter={x:Static stat:EEntwaeserung.Regenwasser}}" />
<RadioButton Style="{StaticResource ToggleButtonList}" Content="Schmutzwasser" IsChecked="{Binding Entwaeserung, Converter={StaticResource EqualValueToParameterConverter},ConverterParameter={x:Static stat:EEntwaeserung.Schmutzwasser}}" />
<RadioButton Style="{StaticResource ToggleButtonList}" Content="Mischwasser" IsChecked="{Binding Entwaeserung, Converter={StaticResource EqualValueToParameterConverter},ConverterParameter={x:Static stat:EEntwaeserung.Mischwasser}}" />
</DockPanel>
</Grid>

View File

@@ -10,10 +10,10 @@
mc:Ignorable="d"
d:DesignHeight="1357.579" d:DesignWidth="820.842">
<d:UserControl.DataContext>
<viewmodel:ProjektSettingsViewModel SelectedNorm="XML"/>
<viewmodel:ProjektSettingsViewModel />
</d:UserControl.DataContext>
<UserControl.Resources>
<converter:ValueToExportConverter x:Key="EqualValueToExportConverter" />
<converter:EqualValueToParameterConverter x:Key="EqualValueToParameterConverter" />
</UserControl.Resources>
<Grid>
<Grid.RowDefinitions>
@@ -23,45 +23,39 @@
<Grid Grid.Row="0" Margin="20,20,20,20">
<StackPanel>
<RadioButton GroupName="MainNorm" x:Name="XML" Content="XML" IsChecked="{Binding SelectedNorm,Converter={StaticResource EqualValueToExportConverter}, ConverterParameter={x:Static stat:EExportType.XML}}" />
<RadioButton GroupName="MainNorm" x:Name="KANDIS" Content="KANDIS" IsChecked="{Binding SelectedNorm,Converter={StaticResource EqualValueToExportConverter}, ConverterParameter={x:Static stat:EExportType.KANDIS}}" />
<RadioButton Style="{StaticResource SmallToggleButtonList}" GroupName="MainNorm" x:Name="XML" Content="XML" IsChecked="{Binding SelectedExport,Converter={StaticResource EqualValueToParameterConverter}, ConverterParameter={x:Static stat:EExportType.XML}}" />
<RadioButton Style="{StaticResource SmallToggleButtonList}" GroupName="MainNorm" x:Name="KANDIS" Content="KANDIS" IsChecked="{Binding SelectedExport,Converter={StaticResource EqualValueToParameterConverter}, ConverterParameter={x:Static stat:EExportType.KANDIS}}" />
</StackPanel>
</Grid>
<Grid Grid.Row="1" Margin="20" Visibility="{Binding KandisVisible}">
<!-- KANDIS -->
<StackPanel>
<RadioButton Content="KANDIS 4.0" />
<RadioButton Content="KANDIS 6.0" />
<RadioButton Style="{StaticResource SmallToggleButtonList}" GroupName="KANDIS" Content="KANDIS 4.0" IsChecked="{Binding SelectedExport, Converter={StaticResource EqualValueToParameterConverter}, ConverterParameter={x:Static stat:EExportType.KANDIS4}}" />
<RadioButton Style="{StaticResource SmallToggleButtonList}" GroupName="KANDIS" Content="KANDIS 6.0" IsChecked="{Binding SelectedExport, Converter={StaticResource EqualValueToParameterConverter}, ConverterParameter={x:Static stat:EExportType.KANDIS6}}" />
</StackPanel>
</Grid>
<Grid Grid.Row="1" Margin="20" Visibility="{Binding XmlVisible}">
<!-- XML-->
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<StackPanel Grid.Row="0">
<RadioButton GroupName="Norm">DIN - EN 13508 - 2: 2003 / Ohne nationale Festlegung</RadioButton>
<RadioButton GroupName="Norm">DIN - EN 13508 - 2: 2003 / Nationale Festlegung DWA M 149-2</RadioButton>
<RadioButton GroupName="Norm" IsEnabled="False">DIN - EN 13508 - 2: 2003 / andere nationale Festlegung (Bemerkung erforderlich)</RadioButton>
<RadioButton GroupName="Norm" IsEnabled="False">ISYBAU 2001</RadioButton>
<RadioButton GroupName="Norm" IsEnabled="False">ISYBAU 1996</RadioButton>
<RadioButton GroupName="Norm" IsEnabled="False">anderes Kodiersystem (Bemerkung erfolrderlich)</RadioButton>
<RadioButton GroupName="Norm">DIN - EN 13508 - 2: 2003 / Nationale Festlegung Arbeitshilfen Abwasser</RadioButton>
<RadioButton GroupName="Norm">DIN - EN 13508 - 2: 2011 / Ohne nationale Festlegung</RadioButton>
<RadioButton GroupName="Norm">DIN - EN 13508 - 2: 2011 / Nationale Festlegung DWA M 149 - 2</RadioButton>
<RadioButton GroupName="Norm">DIN - EN 13508 - 2: 2011 / Nationale Festlegung Arbeitshilfen Abwasser</RadioButton>
</StackPanel>
<StackPanel Grid.Row="1">
<RadioButton GroupName="Regelwerk" IsEnabled="False">Arbeitshilfen Abwasser (ISYBAU 1996/2001)</RadioButton>
<RadioButton GroupName="Regelwerk">Arbeitshilfen Abwasser (ISYBAU 2006)</RadioButton>
<RadioButton GroupName="Regelwerk" IsEnabled="False">Sonstige Festlegungen</RadioButton>
<RadioButton GroupName="Regelwerk" IsEnabled="False">keine Angaben</RadioButton>
<RadioButton GroupName="Regelwerk">Arbeitshilfen Abwasser (ISYBAU 2013)</RadioButton>
<RadioButton GroupName="Regelwerk">Arbeitshilfen Abwasser (ISYBAU 2017)</RadioButton>
<StackPanel>
<RadioButton Style="{StaticResource SmallToggleButtonList}" GroupName="Norm" IsChecked="{Binding SelectedKodier, Converter={StaticResource EqualValueToParameterConverter}, ConverterParameter={x:Static stat:EKodierungssystem.EN13508_2_2003}}">DIN - EN 13508 - 2: 2003 / Ohne nationale Festlegung</RadioButton>
<RadioButton Style="{StaticResource SmallToggleButtonList}" GroupName="Norm" IsChecked="{Binding SelectedKodier, Converter={StaticResource EqualValueToParameterConverter}, ConverterParameter={x:Static stat:EKodierungssystem.EN13508_2_2003_DWA_M_192_2}}">DIN - EN 13508 - 2: 2003 / Nationale Festlegung DWA M 149-2</RadioButton>
<RadioButton Style="{StaticResource SmallToggleButtonList}" GroupName="Norm" IsEnabled="False">DIN - EN 13508 - 2: 2003 / andere nationale Festlegung (Bemerkung erforderlich)</RadioButton>
<RadioButton Style="{StaticResource SmallToggleButtonList}" GroupName="Norm" IsEnabled="False">ISYBAU 2001</RadioButton>
<RadioButton Style="{StaticResource SmallToggleButtonList}" GroupName="Norm" IsEnabled="False">ISYBAU 1996</RadioButton>
<RadioButton Style="{StaticResource SmallToggleButtonList}" GroupName="Norm" IsEnabled="False">anderes Kodiersystem (Bemerkung erfolrderlich)</RadioButton>
<RadioButton Style="{StaticResource SmallToggleButtonList}" GroupName="Norm" IsChecked="{Binding SelectedKodier, Converter={StaticResource EqualValueToParameterConverter}, ConverterParameter={x:Static stat:EKodierungssystem.EN13508_2_2003_ARBEITSHILFEN_ABWASSER}}">DIN - EN 13508 - 2: 2003 / Nationale Festlegung Arbeitshilfen Abwasser</RadioButton>
<RadioButton Style="{StaticResource SmallToggleButtonList}" GroupName="Norm" IsChecked="{Binding SelectedKodier, Converter={StaticResource EqualValueToParameterConverter}, ConverterParameter={x:Static stat:EKodierungssystem.EN13508_2_2011}}">DIN - EN 13508 - 2: 2011 / Ohne nationale Festlegung</RadioButton>
<RadioButton Style="{StaticResource SmallToggleButtonList}" GroupName="Norm" IsChecked="{Binding SelectedKodier, Converter={StaticResource EqualValueToParameterConverter}, ConverterParameter={x:Static stat:EKodierungssystem.EN13508_2_2011_DWA_M_192_2}}">DIN - EN 13508 - 2: 2011 / Nationale Festlegung DWA M 149 - 2</RadioButton>
<RadioButton Style="{StaticResource SmallToggleButtonList}" GroupName="Norm" IsChecked="{Binding SelectedKodier, Converter={StaticResource EqualValueToParameterConverter}, ConverterParameter={x:Static stat:EKodierungssystem.EN13508_2_2011_ARBEITSHILFEN_ABWASSER}}">DIN - EN 13508 - 2: 2011 / Nationale Festlegung Arbeitshilfen Abwasser</RadioButton>
<Button Content="Trenner" IsEnabled="False" />
<RadioButton Style="{StaticResource SmallToggleButtonList}" GroupName="Regelwerk" IsEnabled="False">Arbeitshilfen Abwasser (ISYBAU 1996/2001)</RadioButton>
<RadioButton Style="{StaticResource SmallToggleButtonList}" GroupName="Regelwerk" IsChecked="{Binding SelectedExport, Converter={StaticResource EqualValueToParameterConverter}, ConverterParameter={x:Static stat:EExportType.XML2006}}" >Arbeitshilfen Abwasser (ISYBAU 2006)</RadioButton>
<RadioButton Style="{StaticResource SmallToggleButtonList}" GroupName="Regelwerk" IsEnabled="False">Sonstige Festlegungen</RadioButton>
<RadioButton Style="{StaticResource SmallToggleButtonList}" GroupName="Regelwerk" IsEnabled="False">keine Angaben</RadioButton>
<RadioButton Style="{StaticResource SmallToggleButtonList}" GroupName="Regelwerk" IsChecked="{Binding SelectedExport, Converter={StaticResource EqualValueToParameterConverter}, ConverterParameter={x:Static stat:EExportType.XML2013}}">Arbeitshilfen Abwasser (ISYBAU 2013)</RadioButton>
<RadioButton Style="{StaticResource SmallToggleButtonList}" GroupName="Regelwerk" IsChecked="{Binding SelectedExport, Converter={StaticResource EqualValueToParameterConverter}, ConverterParameter={x:Static stat:EExportType.XML2017}}">Arbeitshilfen Abwasser (ISYBAU 2017)</RadioButton>
</StackPanel>
</Grid>
</Grid>

View File

@@ -11,7 +11,7 @@
xmlns:stat="clr-namespace:SewerStammGen.Shared.Enum;assembly=SewerStammGen.Shared"
d:DesignHeight="450" d:DesignWidth="800">
<UserControl.Resources>
<converter:ValueToEntConverter x:Key="EqualValueToEntwaesserungConverter" />
<converter:EqualValueToParameterConverter x:Key="EqualValueToParameterConverter" />
</UserControl.Resources>
<Grid>
<Grid.ColumnDefinitions>
@@ -49,9 +49,9 @@
<TextBox Margin="2" Grid.Column="1" Grid.Row="6" Text="{Binding SohlHoehe}" />
<DockPanel Grid.Column="1" Grid.Row="7">
<RadioButton Style="{StaticResource ToggleButtonList}" Content="Regenwasser" IsChecked="{Binding Entwaeserung, Converter={StaticResource EqualValueToEntwaesserungConverter},ConverterParameter={x:Static stat:EEntwaeserung.Regenwasser}}" />
<RadioButton Style="{StaticResource ToggleButtonList}" Content="Schmutzwasser" IsChecked="{Binding Entwaeserung, Converter={StaticResource EqualValueToEntwaesserungConverter},ConverterParameter={x:Static stat:EEntwaeserung.Schmutzwasser}}" />
<RadioButton Style="{StaticResource ToggleButtonList}" Content="Mischwasser" IsChecked="{Binding Entwaeserung, Converter={StaticResource EqualValueToEntwaesserungConverter},ConverterParameter={x:Static stat:EEntwaeserung.Mischwasser}}" />
<RadioButton Style="{StaticResource ToggleButtonList}" Content="Regenwasser" IsChecked="{Binding Entwaeserung, Converter={StaticResource EqualValueToParameterConverter},ConverterParameter={x:Static stat:EEntwaeserung.Regenwasser}}" />
<RadioButton Style="{StaticResource ToggleButtonList}" Content="Schmutzwasser" IsChecked="{Binding Entwaeserung, Converter={StaticResource EqualValueToParameterConverter},ConverterParameter={x:Static stat:EEntwaeserung.Schmutzwasser}}" />
<RadioButton Style="{StaticResource ToggleButtonList}" Content="Mischwasser" IsChecked="{Binding Entwaeserung, Converter={StaticResource EqualValueToParameterConverter},ConverterParameter={x:Static stat:EEntwaeserung.Mischwasser}}" />
</DockPanel>

View File

@@ -11,7 +11,9 @@
<ControlTemplate TargetType="{x:Type ToggleButton}">
<Grid>
<Rectangle Name="rect" Fill="#FF808080" Stretch="Fill"/>
<ContentPresenter VerticalAlignment="Top" HorizontalAlignment="Left" Margin="5" RecognizesAccessKey="True" TextBlock.FontFamily="Seggeo" TextBlock.FontSize="16" TextBlock.Foreground="#FFFFFFFF" TextBlock.FontWeight="Light" />
<ContentPresenter VerticalAlignment="Top" HorizontalAlignment="Left" Margin="5"
RecognizesAccessKey="True" TextBlock.FontFamily="Seggeo" TextBlock.FontSize="16"
TextBlock.Foreground="#FFFFFFFF" TextBlock.FontWeight="Light" />
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="UIElement.IsMouseOver" Value="True">
@@ -27,4 +29,37 @@
</Setter.Value>
</Setter>
</Style>
<Style x:Key="SmallToggleButtonList" TargetType="{x:Type RadioButton}">
<Setter Property="FrameworkElement.OverridesDefaultStyle" Value="True"/>
<Setter Property="FrameworkElement.FocusVisualStyle" Value="{x:Null}"/>
<Setter Property="Height" Value="40" />
<Setter Property="Width" Value="auto" />
<Setter Property="Margin" Value="2" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type RadioButton}">
<Grid>
<Rectangle x:Name="rect" Fill="#FF808080" Stretch="Fill" />
<ContentPresenter VerticalAlignment="Top" HorizontalAlignment="Left" Margin="5" RecognizesAccessKey="True"
TextBlock.FontFamily="Seggeo" TextBlock.FontSize="12"
TextBlock.Foreground="#FFFFFFFF" TextBlock.FontWeight="Light" />
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="UIElement.IsMouseOver" Value="True">
<Setter TargetName="rect" Property="Shape.Fill" Value="BlueViolet"/>
<Setter Property="Foreground" Value="#FFFFFFFF" />
</Trigger>
<Trigger Property="RadioButton.IsChecked" Value="True">
<Setter TargetName="rect" Property="Shape.Fill" Value="BlueViolet" />
<Setter Property="Foreground" Value="#FFFFFFFF" />
</Trigger>
<Trigger Property="RadioButton.IsEnabled" Value="False">
<Setter TargetName="rect" Property="Shape.Fill" Value="DarkGray" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>

View File

@@ -0,0 +1,25 @@
using SewerStammGen.Shared.Domain;
using SewerStammGen.Shared.Enum;
using Shared.Contracts;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WWTech_KanalSchnittstelle.Exporter.Kandis;
namespace WWTech_KanalSchnittstelle.Exporter
{
public static class ExporterFactory
{
public static IExport Export(EExportType exportType)
{
switch(exportType)
{
case EExportType.KANDIS6: return new KANDIS60();
default: throw new NotImplementedException();
}
}
}
}

View File

@@ -0,0 +1,21 @@
using SewerStammGen.Shared.Domain;
using SewerStammGen.Shared.Enum;
using Shared.Contracts;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WWTech_KanalSchnittstelle.Exporter.Kandis
{
public class KANDIS60 : IExport
{
public async Task<bool> Export(string projektname,EKodierungssystem kodierungssystem, List<Kanal> haltungen, List<Schacht> schaechte)
{
KANDIS_HALTUNG60 haltung = new KANDIS_HALTUNG60(projektname, haltungen);
KANDIS_SCHACHT60 schacht = new KANDIS_SCHACHT60(projektname, schaechte);
return true;
}
}
}

View File

@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
@@ -16,7 +17,7 @@ namespace WWTech_KanalSchnittstelle.Exporter.Kandis
{ "KANHAL6.0",2167 }
};
}
public abstract class KANDIS_Exporter : IDisposable
internal abstract class KANDIS_Exporter : IDisposable
{
private StreamWriter sw;
char[] zeile;
@@ -50,12 +51,14 @@ namespace WWTech_KanalSchnittstelle.Exporter.Kandis
protected void WriteContent(Tuple<uint, uint> spalten, string content)
{
uint start = spalten.Item1 - 1;
uint ende = spalten.Item2 - 1;
uint ende = spalten.Item2 -1;
uint length = ende - start;
if(length > content.Length)
uint length = (ende+1) - start;
if(content.Length > length)
{
throw new Exception("Inhalt des Feldes ist zu lang");
content = content.Substring(0, (int)length);
//Debugger.Break();
//throw new Exception("Inhalt des Feldes ist zu lang");
}
int counter = 0;

View File

@@ -7,9 +7,9 @@ using System.Threading.Tasks;
namespace WWTech_KanalSchnittstelle.Exporter.Kandis
{
public class KANDIS_HALTUNG60 : KANDIS_Exporter
internal class KANDIS_HALTUNG60 : KANDIS_Exporter
{
public KANDIS_HALTUNG60(string filename, List<Kanal> kanaele) : base(filename, ExporterHelper.Exporters["KANHAL6.0"])
public KANDIS_HALTUNG60(string filename, List<Kanal> kanaele) : base(filename+".hal", ExporterHelper.Exporters["KANHAL6.0"])
{
foreach(Kanal haltung in kanaele)
{
@@ -18,7 +18,7 @@ namespace WWTech_KanalSchnittstelle.Exporter.Kandis
WriteContent(new Tuple<uint, uint>(45, 64), haltung.Objektbezeichnung);
WriteContent(new Tuple<uint, uint>(66, 75), "K"); // Kanalart
WriteContent(new Tuple<uint, uint>(77, 86), "S"); // Entwässerungskennzeichen
WriteContent(new Tuple<uint, uint>(88, 97), "B"); // Betriebzustand
WriteContent(new Tuple<uint, uint>(88, 97), "IB"); // Betriebzustand
WriteContent(new Tuple<uint, uint>(173, 182), haltung.Material);
WriteContent(new Tuple<uint, uint>(184, 193), "1"); // Profil
WriteContent(new Tuple<uint, uint>(195, 198), haltung.DN.ToString()); // Profilhöhe
@@ -31,6 +31,7 @@ namespace WWTech_KanalSchnittstelle.Exporter.Kandis
WriteContent(new Tuple<uint, uint>(336, 345), "1"); // Status Sohlhöhe ES
WriteContent(new Tuple<uint, uint>(1152, 1161), "Marwede"); // Vermesser
WriteContent(new Tuple<uint, uint>(1257, 1266), "19.04.2023"); // Aufnahmedatum
WriteLineInFile();
}
CloseStream();
}

View File

@@ -2,9 +2,9 @@
namespace WWTech_KanalSchnittstelle.Exporter.Kandis
{
public class KANDIS_SCHACHT60 : KANDIS_Exporter
internal class KANDIS_SCHACHT60 : KANDIS_Exporter
{
public KANDIS_SCHACHT60(string filename,List<Schacht> schaechte) : base(filename, ExporterHelper.Exporters["KANSCH6.0"])
public KANDIS_SCHACHT60(string filename,List<Schacht> schaechte) : base(filename+".sch", ExporterHelper.Exporters["KANSCH6.0"])
{
foreach(Schacht schacht in schaechte)

View File

@@ -34,7 +34,7 @@ namespace WWTech_KanalSchnittstelle.Exporter.Kandis.Tests
DeckelHochWert = 14,
}
};
KANDIS_SCHACHT60 kANDIS_SCHACHT60 = new KANDIS_SCHACHT60("test.txt", schaechte);
//KANDIS_SCHACHT60 kANDIS_SCHACHT60 = new KANDIS_SCHACHT60("test.txt", schaechte);
}
}
}

View File

@@ -15,7 +15,7 @@ namespace WWTech_KanalSchnittstelle.Importer.Tests
public void LoadSchaechteTest()
{
CSVImporter importer = new CSVImporter(1);
var s = importer.LoadSchaechte(@"C:\Users\damia\source\repos\Stammdatengenerator\Beispieldaten\Koordinatendatei.csv", SewerStammGen.Shared.Domain.EEntwaeserung.Regenwasser);
//var s = importer.LoadSchaechte(@"C:\Users\damia\source\repos\Stammdatengenerator\Beispieldaten\Koordinatendatei.csv", SewerStammGen.Shared.Domain.EEntwaeserung.Regenwasser);
}
}
}