Compare commits
5 Commits
extend_imp
...
XML_Export
| Author | SHA1 | Date | |
|---|---|---|---|
| 28ad24751d | |||
| c933989d19 | |||
| 7b8b5a2337 | |||
| a0067655b4 | |||
| cea3fc448b |
@@ -1,3 +1,7 @@
|
|||||||
|
-- Table: public.schacht
|
||||||
|
|
||||||
|
-- DROP TABLE IF EXISTS public.schacht;
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS public.schacht
|
CREATE TABLE IF NOT EXISTS public.schacht
|
||||||
(
|
(
|
||||||
schacht_id integer NOT NULL GENERATED BY DEFAULT AS IDENTITY ( INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 2147483647 CACHE 1 ),
|
schacht_id integer NOT NULL GENERATED BY DEFAULT AS IDENTITY ( INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 2147483647 CACHE 1 ),
|
||||||
@@ -9,6 +13,7 @@ CREATE TABLE IF NOT EXISTS public.schacht
|
|||||||
sohlhochwert numeric(18,4),
|
sohlhochwert numeric(18,4),
|
||||||
sohlhoehe numeric(18,4) NOT NULL,
|
sohlhoehe numeric(18,4) NOT NULL,
|
||||||
entwaesserung integer NOT NULL,
|
entwaesserung integer NOT NULL,
|
||||||
|
schachtype integer,
|
||||||
vermesser text COLLATE pg_catalog."default",
|
vermesser text COLLATE pg_catalog."default",
|
||||||
aufnahmedatum text COLLATE pg_catalog."default",
|
aufnahmedatum text COLLATE pg_catalog."default",
|
||||||
ref_projekt_id integer,
|
ref_projekt_id integer,
|
||||||
|
|||||||
@@ -20,8 +20,8 @@ namespace SewerStammGen.DAL.Services.PostgresqlData
|
|||||||
{
|
{
|
||||||
string command = "INSERT INTO " + tableName + " (" +
|
string command = "INSERT INTO " + tableName + " (" +
|
||||||
"objektbezeichnung,deckelrechtswert,deckelhochwert," +
|
"objektbezeichnung,deckelrechtswert,deckelhochwert," +
|
||||||
"sohlrechtswert,sohlhochwert,sohlhoehe,deckelhoehe,entwaesserung,vermesser,aufnahmedatum,ref_projekt_id) VALUES " +
|
"sohlrechtswert,sohlhochwert,sohlhoehe,deckelhoehe,entwaesserung,schachtype,vermesser,aufnahmedatum,ref_projekt_id) VALUES " +
|
||||||
"(@1,@2,@3,@4,@5,@6,@7,@8,@9,@10,@11) RETURNING schacht_id";
|
"(@1,@2,@3,@4,@5,@6,@7,@8,@9,@10,@11,@12) RETURNING schacht_id";
|
||||||
using(var cmd = new NpgsqlCommand(command,conn))
|
using(var cmd = new NpgsqlCommand(command,conn))
|
||||||
{
|
{
|
||||||
cmd.Parameters.AddWithValue("1", entity.Objektbezeichnung);
|
cmd.Parameters.AddWithValue("1", entity.Objektbezeichnung);
|
||||||
@@ -32,9 +32,10 @@ namespace SewerStammGen.DAL.Services.PostgresqlData
|
|||||||
cmd.Parameters.AddWithValue("6", entity.SohlHoehe);
|
cmd.Parameters.AddWithValue("6", entity.SohlHoehe);
|
||||||
cmd.Parameters.AddWithValue("7", entity.DeckelHoehe);
|
cmd.Parameters.AddWithValue("7", entity.DeckelHoehe);
|
||||||
cmd.Parameters.AddWithValue("8", (int)entity.Entwaesserung);
|
cmd.Parameters.AddWithValue("8", (int)entity.Entwaesserung);
|
||||||
cmd.Parameters.AddWithValue("9", entity.Vermesser);
|
cmd.Parameters.AddWithValue("9", (int)entity.SchachtType);
|
||||||
cmd.Parameters.AddWithValue("10", entity.AufnahmeDatum);
|
cmd.Parameters.AddWithValue("10", entity.Vermesser);
|
||||||
cmd.Parameters.AddWithValue("11", entity.Projekt.Id);
|
cmd.Parameters.AddWithValue("11", entity.AufnahmeDatum);
|
||||||
|
cmd.Parameters.AddWithValue("12", entity.Projekt.Id);
|
||||||
using var reader = await cmd.ExecuteReaderAsync();
|
using var reader = await cmd.ExecuteReaderAsync();
|
||||||
reader.Read();
|
reader.Read();
|
||||||
entity.Id = reader.GetInt32(0);
|
entity.Id = reader.GetInt32(0);
|
||||||
@@ -65,9 +66,10 @@ namespace SewerStammGen.DAL.Services.PostgresqlData
|
|||||||
SohlHochWert = reader.GetDecimal(6),
|
SohlHochWert = reader.GetDecimal(6),
|
||||||
SohlHoehe = reader.GetDecimal(7),
|
SohlHoehe = reader.GetDecimal(7),
|
||||||
Entwaesserung = (EEntwaeserung)reader.GetInt32(8),
|
Entwaesserung = (EEntwaeserung)reader.GetInt32(8),
|
||||||
Vermesser = reader.GetString(9),
|
SchachtType = (ESchachtType)reader.GetInt32(9),
|
||||||
AufnahmeDatum = reader.GetString(10),
|
Vermesser = reader.GetString(10),
|
||||||
Projekt = new Projekt() { Id = reader.GetInt32(11) },
|
AufnahmeDatum = reader.GetString(11),
|
||||||
|
Projekt = new Projekt() { Id = reader.GetInt32(12) },
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -99,7 +101,7 @@ namespace SewerStammGen.DAL.Services.PostgresqlData
|
|||||||
{
|
{
|
||||||
string command = @"UPDATE " + tableName + " SET " +
|
string command = @"UPDATE " + tableName + " SET " +
|
||||||
"objektbezeichnung=@1, deckelrechtswert=@2, deckelhochwert=@3, deckelhoehe=@4, " +
|
"objektbezeichnung=@1, deckelrechtswert=@2, deckelhochwert=@3, deckelhoehe=@4, " +
|
||||||
"sohlrechtswert=@5, sohlhochwert=@6, sohlhoehe=@7, entwaesserung=@8, vermesser=@9, aufnahmedatum=@10, ref_projekt_id=@11 WHERE schacht_id=@12";
|
"sohlrechtswert=@5, sohlhochwert=@6, sohlhoehe=@7, entwaesserung=@8, schachttype=@9, vermesser=@10, aufnahmedatum=@11, ref_projekt_id=@12 WHERE schacht_id=@13";
|
||||||
using(var cmd = new NpgsqlCommand(command,conn))
|
using(var cmd = new NpgsqlCommand(command,conn))
|
||||||
{
|
{
|
||||||
cmd.Parameters.AddWithValue("1", entity.Objektbezeichnung);
|
cmd.Parameters.AddWithValue("1", entity.Objektbezeichnung);
|
||||||
@@ -110,10 +112,11 @@ namespace SewerStammGen.DAL.Services.PostgresqlData
|
|||||||
cmd.Parameters.AddWithValue("6", entity.SohlHochWert);
|
cmd.Parameters.AddWithValue("6", entity.SohlHochWert);
|
||||||
cmd.Parameters.AddWithValue("7", entity.SohlHoehe);
|
cmd.Parameters.AddWithValue("7", entity.SohlHoehe);
|
||||||
cmd.Parameters.AddWithValue("8", (int)entity.Entwaesserung);
|
cmd.Parameters.AddWithValue("8", (int)entity.Entwaesserung);
|
||||||
cmd.Parameters.AddWithValue("9", entity.Vermesser);
|
cmd.Parameters.AddWithValue("9", (int)entity.SchachtType);
|
||||||
cmd.Parameters.AddWithValue("10", entity.AufnahmeDatum);
|
cmd.Parameters.AddWithValue("10", entity.Vermesser);
|
||||||
cmd.Parameters.AddWithValue("11", entity.Projekt.Id);
|
cmd.Parameters.AddWithValue("11", entity.AufnahmeDatum);
|
||||||
cmd.Parameters.AddWithValue("12", entity.Id);
|
cmd.Parameters.AddWithValue("12", entity.Projekt.Id);
|
||||||
|
cmd.Parameters.AddWithValue("13", entity.Id);
|
||||||
|
|
||||||
await cmd.ExecuteNonQueryAsync();
|
await cmd.ExecuteNonQueryAsync();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ namespace SewerStammGen.Shared.Domain
|
|||||||
public decimal SohlHoehe { get; set; }
|
public decimal SohlHoehe { get; set; }
|
||||||
public Projekt Projekt { get; set; } = new Projekt();
|
public Projekt Projekt { get; set; } = new Projekt();
|
||||||
public EEntwaeserung Entwaesserung { get; set; }
|
public EEntwaeserung Entwaesserung { get; set; }
|
||||||
|
public ESchachtType SchachtType { get; set; }
|
||||||
public string Vermesser { get; set; } = String.Empty;
|
public string Vermesser { get; set; } = String.Empty;
|
||||||
public string AufnahmeDatum { get; set; } = String.Empty;
|
public string AufnahmeDatum { get; set; } = String.Empty;
|
||||||
}
|
}
|
||||||
|
|||||||
8
SewerStammGen.Shared/Enum/ESchachtType.cs
Normal file
8
SewerStammGen.Shared/Enum/ESchachtType.cs
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
namespace SewerStammGen.Shared.Enum
|
||||||
|
{
|
||||||
|
public enum ESchachtType
|
||||||
|
{
|
||||||
|
Hauptkanal,
|
||||||
|
Revisionschacht
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -138,6 +138,19 @@ namespace StammGenerator.ViewModel
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ESchachtType SchachtType
|
||||||
|
{
|
||||||
|
get => _model.SchachtType;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if(_model.SchachtType != value)
|
||||||
|
{
|
||||||
|
_model.SchachtType = value;
|
||||||
|
OnPropertyChanged();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public ManholeEditViewModel(ISchachtDataService schachtDataService,IActualState actualState, IRenavigator renavigator)
|
public ManholeEditViewModel(ISchachtDataService schachtDataService,IActualState actualState, IRenavigator renavigator)
|
||||||
{
|
{
|
||||||
_schachtDataService = schachtDataService;
|
_schachtDataService = schachtDataService;
|
||||||
|
|||||||
@@ -29,6 +29,7 @@
|
|||||||
<RowDefinition Height="auto" />
|
<RowDefinition Height="auto" />
|
||||||
<RowDefinition Height="auto" />
|
<RowDefinition Height="auto" />
|
||||||
<RowDefinition Height="auto" />
|
<RowDefinition Height="auto" />
|
||||||
|
<RowDefinition Height="auto" />
|
||||||
<RowDefinition />
|
<RowDefinition />
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
|
|
||||||
@@ -42,6 +43,7 @@
|
|||||||
<Label Grid.Column="0" Grid.Row="7" Content="Vermesser" />
|
<Label Grid.Column="0" Grid.Row="7" Content="Vermesser" />
|
||||||
<Label Grid.Column="0" Grid.Row="8" Content="Aufnahmedatum" />
|
<Label Grid.Column="0" Grid.Row="8" Content="Aufnahmedatum" />
|
||||||
<Label Grid.Column="0" Grid.Row="9" Content="Entwässerungsart" />
|
<Label Grid.Column="0" Grid.Row="9" Content="Entwässerungsart" />
|
||||||
|
<Label Grid.Column="0" Grid.Row="10" Content="SchachtType" />
|
||||||
|
|
||||||
<TextBox Margin="2" Grid.Column="1" Grid.Row="0" Text="{Binding Objektbezeichnung}" />
|
<TextBox Margin="2" Grid.Column="1" Grid.Row="0" Text="{Binding Objektbezeichnung}" />
|
||||||
<TextBox Margin="2" Grid.Column="1" Grid.Row="1" Text="{Binding DeckelRechtsWert}" />
|
<TextBox Margin="2" Grid.Column="1" Grid.Row="1" Text="{Binding DeckelRechtsWert}" />
|
||||||
@@ -59,8 +61,14 @@
|
|||||||
<RadioButton Style="{StaticResource ToggleButtonList}" Content="Mischwasser" IsChecked="{Binding Entwaeserung, Converter={StaticResource EqualValueToParameterConverter},ConverterParameter={x:Static stat:EEntwaeserung.Mischwasser}}" />
|
<RadioButton Style="{StaticResource ToggleButtonList}" Content="Mischwasser" IsChecked="{Binding Entwaeserung, Converter={StaticResource EqualValueToParameterConverter},ConverterParameter={x:Static stat:EEntwaeserung.Mischwasser}}" />
|
||||||
</DockPanel>
|
</DockPanel>
|
||||||
|
|
||||||
|
<DockPanel Grid.Column="1" Grid.Row="10">
|
||||||
|
<!-- SchachtType-->
|
||||||
|
<RadioButton Style="{StaticResource ToggleButtonList}" Content="Hauptkanal" IsChecked="{Binding SchachtType, Converter={StaticResource EqualValueToParameterConverter},ConverterParameter={x:Static stat:ESchachtType.Hauptkanal}}" />
|
||||||
|
<RadioButton Style="{StaticResource ToggleButtonList}" Content="Revision" IsChecked="{Binding SchachtType, Converter={StaticResource EqualValueToParameterConverter},ConverterParameter={x:Static stat:ESchachtType.Revisionschacht}}" />
|
||||||
|
</DockPanel>
|
||||||
|
|
||||||
<StackPanel Grid.ColumnSpan="2" Grid.Row="10">
|
|
||||||
|
<StackPanel Grid.ColumnSpan="2" Grid.Row="11">
|
||||||
<Button Content="Speichern" Command="{Binding Speichern}" />
|
<Button Content="Speichern" Command="{Binding Speichern}" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
|
|||||||
@@ -20,6 +20,7 @@
|
|||||||
<!--<DataGridTextColumn Header="Sohlhöhe" Binding="{Binding SohlHoehe}" />-->
|
<!--<DataGridTextColumn Header="Sohlhöhe" Binding="{Binding SohlHoehe}" />-->
|
||||||
<!--<DataGridTextColumn Header="Deckelhöhe" Binding="{Binding DeckelHoehe}" />-->
|
<!--<DataGridTextColumn Header="Deckelhöhe" Binding="{Binding DeckelHoehe}" />-->
|
||||||
<DataGridTextColumn Header="Entwässerung" Binding="{Binding Entwaesserung}" />
|
<DataGridTextColumn Header="Entwässerung" Binding="{Binding Entwaesserung}" />
|
||||||
|
<DataGridTextColumn Header="SchachtTyp" Binding="{Binding SchachtType}" />
|
||||||
</DataGrid.Columns>
|
</DataGrid.Columns>
|
||||||
</DataGrid>
|
</DataGrid>
|
||||||
<StackPanel Grid.Row="1">
|
<StackPanel Grid.Row="1">
|
||||||
|
|||||||
@@ -20,6 +20,8 @@ namespace WWTech_KanalSchnittstelle.Exporter
|
|||||||
{
|
{
|
||||||
case EExportType.KANDIS6: return new KANDIS60();
|
case EExportType.KANDIS6: return new KANDIS60();
|
||||||
case EExportType.XML2006: return new XML2006();
|
case EExportType.XML2006: return new XML2006();
|
||||||
|
case EExportType.XML2013: return new XML2013();
|
||||||
|
case EExportType.XML2017: return new XML2017();
|
||||||
default: throw new NotImplementedException();
|
default: throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,7 +15,8 @@ namespace WWTech_KanalSchnittstelle.Exporter.Kandis
|
|||||||
public async Task<bool> Export(string projektname,EKodierungssystem kodierungssystem, List<Kanal> haltungen, List<Schacht> schaechte, IWWLog log)
|
public async Task<bool> Export(string projektname,EKodierungssystem kodierungssystem, List<Kanal> haltungen, List<Schacht> schaechte, IWWLog log)
|
||||||
{
|
{
|
||||||
KANDIS_HALTUNG60 haltung = new KANDIS_HALTUNG60(projektname, haltungen, log);
|
KANDIS_HALTUNG60 haltung = new KANDIS_HALTUNG60(projektname, haltungen, log);
|
||||||
KANDIS_SCHACHT60 schacht = new KANDIS_SCHACHT60(projektname, schaechte, log);
|
KANDIS_SCHACHT60 hauptschacht = new KANDIS_SCHACHT60(projektname, schaechte.FindAll(x => x.SchachtType == ESchachtType.Hauptkanal), log);
|
||||||
|
KANDIS_HAUSREV60 revisschacht = new KANDIS_HAUSREV60(projektname, schaechte.FindAll(x => x.SchachtType == ESchachtType.Revisionschacht), log);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,8 +23,13 @@ namespace WWTech_KanalSchnittstelle.Exporter.Kandis
|
|||||||
WriteContent(new Tuple<uint, uint>(293,307), schacht.SohlRechtsWert.ToString());
|
WriteContent(new Tuple<uint, uint>(293,307), schacht.SohlRechtsWert.ToString());
|
||||||
WriteContent(new Tuple<uint, uint>(309, 323), schacht.SohlHochWert.ToString());
|
WriteContent(new Tuple<uint, uint>(309, 323), schacht.SohlHochWert.ToString());
|
||||||
WriteContent(new Tuple<uint, uint>(325, 334), "1"); // Status Schachtmittelkoordinaten
|
WriteContent(new Tuple<uint, uint>(325, 334), "1"); // Status Schachtmittelkoordinaten
|
||||||
|
// Deckelkoordinaten
|
||||||
|
WriteContent(new Tuple<uint, uint>(336, 350), schacht.DeckelRechtsWert.ToString());
|
||||||
|
WriteContent(new Tuple<uint, uint>(352, 366), schacht.DeckelHochWert.ToString());
|
||||||
|
WriteContent(new Tuple<uint, uint>(368, 377), "1");
|
||||||
|
WriteLineInFile();
|
||||||
}
|
}
|
||||||
|
CloseStream();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,6 +10,16 @@ using System.Text;
|
|||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using System.Xml;
|
using System.Xml;
|
||||||
|
|
||||||
|
|
||||||
|
// TODO: Admindaten fehlen
|
||||||
|
|
||||||
|
// TODO: Datenkollektive fehlen Datenstatus und Erstellungsdatum
|
||||||
|
// Stammdatenkollektiv auszufüllen
|
||||||
|
/*
|
||||||
|
Stammdatenkollektiv fehlt: GeoObjektart unter Geometrie
|
||||||
|
|
||||||
|
|
||||||
|
*/
|
||||||
namespace WWTech_KanalSchnittstelle.Exporter.XML
|
namespace WWTech_KanalSchnittstelle.Exporter.XML
|
||||||
{
|
{
|
||||||
public class XML2006 : IExport
|
public class XML2006 : IExport
|
||||||
@@ -17,7 +27,15 @@ namespace WWTech_KanalSchnittstelle.Exporter.XML
|
|||||||
private XmlDocument _file;
|
private XmlDocument _file;
|
||||||
private List<Schacht> _schaechte;
|
private List<Schacht> _schaechte;
|
||||||
private List<Kanal> _haltungen;
|
private List<Kanal> _haltungen;
|
||||||
public async Task<bool> Export(string projektname, EKodierungssystem kodierungssystem, List<Kanal> haltungen, List<Schacht> schaechte, IWWLog logger)
|
|
||||||
|
private static Dictionary<EExportType, Tuple<string, string>> ExportVersionen = new Dictionary<EExportType, Tuple<string, string>>()
|
||||||
|
{
|
||||||
|
{ EExportType.XML2006, new Tuple<string, string>("2006-10","2") },
|
||||||
|
{ EExportType.XML2013, new Tuple<string, string>("2013-02","5") },
|
||||||
|
{ EExportType.XML2017, new Tuple<string, string>("2017-07","6") }
|
||||||
|
};
|
||||||
|
|
||||||
|
public async Task<bool> Export(string projektname, EKodierungssystem kodierungssystem,List<Kanal> haltungen, List<Schacht> schaechte, IWWLog logger)
|
||||||
{
|
{
|
||||||
_schaechte = schaechte;
|
_schaechte = schaechte;
|
||||||
_haltungen = haltungen;
|
_haltungen = haltungen;
|
||||||
@@ -27,7 +45,8 @@ namespace WWTech_KanalSchnittstelle.Exporter.XML
|
|||||||
XmlElement xmlElement = CreateElementFor("Identifikation", _file);
|
XmlElement xmlElement = CreateElementFor("Identifikation", _file);
|
||||||
xmlElement.SetAttribute("xmlns", "http://www.ofd-hannover.la/Identifikation");
|
xmlElement.SetAttribute("xmlns", "http://www.ofd-hannover.la/Identifikation");
|
||||||
XmlElement xmlElement2 = CreateElementFor("Version", xmlElement);
|
XmlElement xmlElement2 = CreateElementFor("Version", xmlElement);
|
||||||
xmlElement2.InnerText = "2006-2"; // XML Version
|
xmlElement2.InnerText = ExportVersionen[EExportType.XML2006].Item1; // XML Version
|
||||||
|
|
||||||
DoAdmindata(xmlElement);
|
DoAdmindata(xmlElement);
|
||||||
DoCollectives(xmlElement);
|
DoCollectives(xmlElement);
|
||||||
|
|
||||||
@@ -45,12 +64,30 @@ namespace WWTech_KanalSchnittstelle.Exporter.XML
|
|||||||
private void DoAdmindata(XmlElement idElement)
|
private void DoAdmindata(XmlElement idElement)
|
||||||
{
|
{
|
||||||
XmlElement parentElement = CreateElementFor("Admindaten", idElement);
|
XmlElement parentElement = CreateElementFor("Admindaten", idElement);
|
||||||
|
XmlElement Liegenschaft = CreateElementFor("Liegenschaft", parentElement);
|
||||||
|
DoRowValue(Liegenschaft, "Liegenschaftsnummer", "0");
|
||||||
|
DoRowValue(Liegenschaft, "Objektnummer", "0");
|
||||||
|
DoRowValue(Liegenschaft, "Liegenschaftsbezeichnung", "0");
|
||||||
|
DoRowValue(Liegenschaft, "Liegenschaftsort", "0");
|
||||||
|
DoRowValue(Liegenschaft, "Liegenschaftsnutzung", "komunal");
|
||||||
|
|
||||||
|
XmlElement Verwaltung = CreateElementFor("Verwaltung", parentElement);
|
||||||
|
DoRowValue(Verwaltung, "DienststelleVerwaltend", "123");
|
||||||
|
DoRowValue(Verwaltung, "DienststelleHausverwaltend", "123");
|
||||||
|
DoRowValue(Verwaltung, "DienststelleBauaufsicht", "123");
|
||||||
|
DoRowValue(Verwaltung, "DienststelleBaudurchfuehrung", "123");
|
||||||
|
DoRowValue(Verwaltung, "NummerDienststelleBaudurchfuehrung", "123");
|
||||||
|
DoRowValue(Verwaltung, "Zustaendigkeitsbereich", "123");
|
||||||
|
DoRowValue(Verwaltung, "Aktenzeichen", "123");
|
||||||
|
DoRowValue(Verwaltung, "Abwasserbeseitigungspflicht", "1");
|
||||||
|
DoRowValue(Verwaltung, "Wasserbehoerde", "123");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DoCollectives(XmlElement idElement)
|
private void DoCollectives(XmlElement idElement)
|
||||||
{
|
{
|
||||||
XmlElement dataCollectiveElement = DoRow(idElement, "Datenkollektive");
|
XmlElement dataCollectiveElement = DoRow(idElement, "Datenkollektive");
|
||||||
|
DoRowValue(dataCollectiveElement, "Datenstatus", "1");
|
||||||
|
DoRowValue(dataCollectiveElement, "Erstellungsdatum", "2023-07-25");
|
||||||
DoCollectives1Labels(dataCollectiveElement);
|
DoCollectives1Labels(dataCollectiveElement);
|
||||||
DoCollectives2Base(dataCollectiveElement);
|
DoCollectives2Base(dataCollectiveElement);
|
||||||
}
|
}
|
||||||
@@ -87,15 +124,16 @@ namespace WWTech_KanalSchnittstelle.Exporter.XML
|
|||||||
DoRowValue(xmlElement2, "SchachtFunktion", "1");
|
DoRowValue(xmlElement2, "SchachtFunktion", "1");
|
||||||
|
|
||||||
XmlElement GeometrieElement = CreateElementFor("Geometrie", xmlElement);
|
XmlElement GeometrieElement = CreateElementFor("Geometrie", xmlElement);
|
||||||
XmlElement KnotenElement = CreateElementFor("Knoten", GeometrieElement);
|
XmlElement GeometrieDaten = CreateElementFor("Geometriedaten", GeometrieElement);
|
||||||
|
XmlElement KnotenElement = CreateElementFor("Knoten", GeometrieDaten);
|
||||||
XmlElement PunktElement = CreateElementFor("Punkt", KnotenElement);
|
XmlElement PunktElement = CreateElementFor("Punkt", KnotenElement);
|
||||||
DoRowValue(PunktElement, "Rechtswert", schacht.SohlRechtsWert.ToString().Replace(',', '.'));
|
DoRowValue(PunktElement, "Rechtswert", schacht.SohlRechtsWert.ToString().Replace(',', '.'));
|
||||||
DoRowValue(PunktElement, "Hochwert", schacht.SohlHochWert.ToString().Replace(',', '.'));
|
DoRowValue(PunktElement, "Hochwert", schacht.SohlHochWert.ToString().Replace(',', '.'));
|
||||||
DoRowValue(PunktElement, "Punkthoehe", schacht.SohlHoehe.ToString().Replace(',', '.'));
|
DoRowValue(PunktElement, "Punkthoehe", schacht.SohlHoehe.ToString().Replace(',', '.'));
|
||||||
DoRowValue(PunktElement, "PunktattributAbwasser", "SMP");
|
DoRowValue(PunktElement, "PunktattributAbwasser", "SMP");
|
||||||
PunktElement = CreateElementFor("Punkt", KnotenElement);
|
PunktElement = CreateElementFor("Punkt", KnotenElement);
|
||||||
DoRowValue(PunktElement, "Rechtswert", schacht.DeckelRechtsWert.ToString().Replace(',', '.'));
|
if(schacht.DeckelRechtsWert != 0) DoRowValue(PunktElement, "Rechtswert", schacht.DeckelRechtsWert.ToString().Replace(',', '.'));
|
||||||
DoRowValue(PunktElement, "Hochwert", schacht.DeckelHochWert.ToString().Replace(',', '.'));
|
if(schacht.DeckelHochWert != 0) DoRowValue(PunktElement, "Hochwert", schacht.DeckelHochWert.ToString().Replace(',', '.'));
|
||||||
DoRowValue(PunktElement, "Punkthoehe", schacht.DeckelHoehe.ToString().Replace(',', '.'));
|
DoRowValue(PunktElement, "Punkthoehe", schacht.DeckelHoehe.ToString().Replace(',', '.'));
|
||||||
DoRowValue(PunktElement, "PunktattributAbwasser", "DMP");
|
DoRowValue(PunktElement, "PunktattributAbwasser", "DMP");
|
||||||
return xmlElement;
|
return xmlElement;
|
||||||
@@ -169,11 +207,17 @@ namespace WWTech_KanalSchnittstelle.Exporter.XML
|
|||||||
DoRowValue(xmlElement, "Kennung", "STA01");
|
DoRowValue(xmlElement, "Kennung", "STA01");
|
||||||
DoRowValue(xmlElement, "Kollektivart", "1");
|
DoRowValue(xmlElement, "Kollektivart", "1");
|
||||||
XmlElement parentElement2 = CreateElementFor("Kollektiveigenschaft", xmlElement);
|
XmlElement parentElement2 = CreateElementFor("Kollektiveigenschaft", xmlElement);
|
||||||
DoRow(parentElement2, "Stammdaten");
|
XmlElement parentElement3 = CreateElementFor("Stammdaten", parentElement2);
|
||||||
DoRow(parentElement2, "Zustandsdaten");
|
DoRowValue(parentElement3, "Stammdatentyp", "1");
|
||||||
DoRow(parentElement2, "Hydraulikdaten");
|
DoRowValue(parentElement3, "Bautechnik", "1");
|
||||||
DoRow(parentElement2, "Betriebsdaten");
|
DoRowValue(parentElement3, "Geometrie", "1");
|
||||||
DoRowValue(xmlElement, "Regelwerk", "2");
|
DoRowValue(parentElement3, "Sanierung", "0");
|
||||||
|
DoRowValue(parentElement3, "Umfeld", "0");
|
||||||
|
|
||||||
|
//DoRow(parentElement2, "Zustandsdaten");
|
||||||
|
//DoRow(parentElement2, "Hydraulikdaten");
|
||||||
|
//DoRow(parentElement2, "Betriebsdaten");
|
||||||
|
DoRowValue(xmlElement, "Regelwerk", ExportVersionen[EExportType.XML2006].Item2);
|
||||||
DoRowValue(xmlElement, "Bearbeitungsstand", "2");
|
DoRowValue(xmlElement, "Bearbeitungsstand", "2");
|
||||||
DoRowValue(xmlElement, "Kommentar", "test");
|
DoRowValue(xmlElement, "Kommentar", "test");
|
||||||
}
|
}
|
||||||
|
|||||||
235
WWTech_KanalSchnittstelle/Exporter/XML/XML2013.cs
Normal file
235
WWTech_KanalSchnittstelle/Exporter/XML/XML2013.cs
Normal file
@@ -0,0 +1,235 @@
|
|||||||
|
using Microsoft.Win32.SafeHandles;
|
||||||
|
using SewerStammGen.Shared.Contracts;
|
||||||
|
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 System.Xml;
|
||||||
|
|
||||||
|
|
||||||
|
// TODO: Admindaten fehlen
|
||||||
|
|
||||||
|
// TODO: Datenkollektive fehlen Datenstatus und Erstellungsdatum
|
||||||
|
// Stammdatenkollektiv auszufüllen
|
||||||
|
/*
|
||||||
|
Stammdatenkollektiv fehlt: GeoObjektart unter Geometrie
|
||||||
|
|
||||||
|
|
||||||
|
*/
|
||||||
|
namespace WWTech_KanalSchnittstelle.Exporter.XML
|
||||||
|
{
|
||||||
|
public class XML2013 : IExport
|
||||||
|
{
|
||||||
|
private XmlDocument _file;
|
||||||
|
private List<Schacht> _schaechte;
|
||||||
|
private List<Kanal> _haltungen;
|
||||||
|
|
||||||
|
private static Dictionary<EExportType, Tuple<string, string>> ExportVersionen = new Dictionary<EExportType, Tuple<string, string>>()
|
||||||
|
{
|
||||||
|
{ EExportType.XML2006, new Tuple<string, string>("2006-10","2") },
|
||||||
|
{ EExportType.XML2013, new Tuple<string, string>("2013-02","5") },
|
||||||
|
{ EExportType.XML2017, new Tuple<string, string>("2017-07","6") }
|
||||||
|
};
|
||||||
|
|
||||||
|
public async Task<bool> Export(string projektname, EKodierungssystem kodierungssystem,List<Kanal> haltungen, List<Schacht> schaechte, IWWLog logger)
|
||||||
|
{
|
||||||
|
_schaechte = schaechte;
|
||||||
|
_haltungen = haltungen;
|
||||||
|
_file = new XmlDocument();
|
||||||
|
XmlDeclaration newChild = _file.CreateXmlDeclaration("1.0", "ISO-8859-1", "yes");
|
||||||
|
_file.AppendChild(newChild);
|
||||||
|
XmlElement xmlElement = CreateElementFor("Identifikation", _file);
|
||||||
|
xmlElement.SetAttribute("xmlns", "http://www.ofd-hannover.la/Identifikation");
|
||||||
|
XmlElement xmlElement2 = CreateElementFor("Version", xmlElement);
|
||||||
|
xmlElement2.InnerText = ExportVersionen[EExportType.XML2013].Item1; // XML Version
|
||||||
|
|
||||||
|
DoAdmindata(xmlElement);
|
||||||
|
DoCollectives(xmlElement);
|
||||||
|
|
||||||
|
_file.Save("test.xml");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private XmlElement CreateElementFor(string name, XmlNode parentElement)
|
||||||
|
{
|
||||||
|
XmlElement xmlElement = _file.CreateElement(name);
|
||||||
|
parentElement.AppendChild(xmlElement);
|
||||||
|
return xmlElement;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void DoAdmindata(XmlElement idElement)
|
||||||
|
{
|
||||||
|
XmlElement parentElement = CreateElementFor("Admindaten", idElement);
|
||||||
|
XmlElement Liegenschaft = CreateElementFor("Liegenschaft", parentElement);
|
||||||
|
DoRowValue(Liegenschaft, "Liegenschaftsnummer", "0");
|
||||||
|
DoRowValue(Liegenschaft, "Objektnummer", "0");
|
||||||
|
DoRowValue(Liegenschaft, "Liegenschaftsbezeichnung", "0");
|
||||||
|
DoRowValue(Liegenschaft, "Liegenschaftsort", "0");
|
||||||
|
DoRowValue(Liegenschaft, "Liegenschaftsnutzung", "komunal");
|
||||||
|
|
||||||
|
XmlElement Verwaltung = CreateElementFor("Verwaltung", parentElement);
|
||||||
|
DoRowValue(Verwaltung, "DienststelleVerwaltend", "123");
|
||||||
|
DoRowValue(Verwaltung, "DienststelleHausverwaltend", "123");
|
||||||
|
DoRowValue(Verwaltung, "DienststelleBauaufsicht", "123");
|
||||||
|
DoRowValue(Verwaltung, "DienststelleBaudurchfuehrung", "123");
|
||||||
|
DoRowValue(Verwaltung, "NummerDienststelleBaudurchfuehrung", "123");
|
||||||
|
DoRowValue(Verwaltung, "Zustaendigkeitsbereich", "123");
|
||||||
|
DoRowValue(Verwaltung, "Aktenzeichen", "123");
|
||||||
|
DoRowValue(Verwaltung, "Abwasserbeseitigungspflicht", "1");
|
||||||
|
DoRowValue(Verwaltung, "Wasserbehoerde", "123");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void DoCollectives(XmlElement idElement)
|
||||||
|
{
|
||||||
|
XmlElement dataCollectiveElement = DoRow(idElement, "Datenkollektive");
|
||||||
|
DoRowValue(dataCollectiveElement, "Datenstatus", "1");
|
||||||
|
DoRowValue(dataCollectiveElement, "Erstellungsdatum", "2023-07-25");
|
||||||
|
DoCollectives1Labels(dataCollectiveElement);
|
||||||
|
DoCollectives2Base(dataCollectiveElement);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void DoCollectives2Base(XmlElement dataCollectiveElement)
|
||||||
|
{
|
||||||
|
XmlElement parentElement = DoRow(dataCollectiveElement, "Stammdatenkollektiv");
|
||||||
|
|
||||||
|
foreach (Kanal haltung in _haltungen)
|
||||||
|
{
|
||||||
|
XmlElement xmlElement = DoHaltungRow(haltung, parentElement, "AbwassertechnischeAnlage");
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (Schacht schacht in _schaechte)
|
||||||
|
{
|
||||||
|
XmlElement xmlElement = DoSchachtRow(schacht, parentElement, "AbwassertechnischeAnlage");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private XmlElement DoSchachtRow(Schacht schacht, XmlElement parentElement, string originTableName)
|
||||||
|
{
|
||||||
|
XmlElement xmlElement = null;
|
||||||
|
xmlElement = _file.CreateElement(originTableName);
|
||||||
|
parentElement.AppendChild(xmlElement);
|
||||||
|
|
||||||
|
DoRowValue(xmlElement, "Objektbezeichnung", schacht.Objektbezeichnung);
|
||||||
|
DoRowValue(xmlElement, "Objektart", "2");
|
||||||
|
DoRowValue(xmlElement, "Entwaesserungsart", schacht.Entwaesserung == EEntwaeserung.Regenwasser ? "KR" : schacht.Entwaesserung == EEntwaeserung.Schmutzwasser ? "KS" : "KM");
|
||||||
|
|
||||||
|
XmlElement xmlElement1 = CreateElementFor("Knoten", xmlElement);
|
||||||
|
DoRowValue(xmlElement1, "KnotenTyp", "0");
|
||||||
|
|
||||||
|
XmlElement xmlElement2 = CreateElementFor("Schacht", xmlElement1);
|
||||||
|
DoRowValue(xmlElement2, "SchachtFunktion", "1");
|
||||||
|
|
||||||
|
XmlElement GeometrieElement = CreateElementFor("Geometrie", xmlElement);
|
||||||
|
XmlElement GeometrieDaten = CreateElementFor("Geometriedaten", GeometrieElement);
|
||||||
|
XmlElement KnotenElement = CreateElementFor("Knoten", GeometrieDaten);
|
||||||
|
XmlElement PunktElement = CreateElementFor("Punkt", KnotenElement);
|
||||||
|
DoRowValue(PunktElement, "Rechtswert", schacht.SohlRechtsWert.ToString().Replace(',', '.'));
|
||||||
|
DoRowValue(PunktElement, "Hochwert", schacht.SohlHochWert.ToString().Replace(',', '.'));
|
||||||
|
DoRowValue(PunktElement, "Punkthoehe", schacht.SohlHoehe.ToString().Replace(',', '.'));
|
||||||
|
DoRowValue(PunktElement, "PunktattributAbwasser", "SMP");
|
||||||
|
PunktElement = CreateElementFor("Punkt", KnotenElement);
|
||||||
|
if(schacht.DeckelRechtsWert != 0) DoRowValue(PunktElement, "Rechtswert", schacht.DeckelRechtsWert.ToString().Replace(',', '.'));
|
||||||
|
if(schacht.DeckelHochWert != 0) DoRowValue(PunktElement, "Hochwert", schacht.DeckelHochWert.ToString().Replace(',', '.'));
|
||||||
|
DoRowValue(PunktElement, "Punkthoehe", schacht.DeckelHoehe.ToString().Replace(',', '.'));
|
||||||
|
DoRowValue(PunktElement, "PunktattributAbwasser", "DMP");
|
||||||
|
return xmlElement;
|
||||||
|
}
|
||||||
|
|
||||||
|
private XmlElement DoHaltungRow(Kanal haltung, XmlElement parentElement, string orginalTableName)
|
||||||
|
{
|
||||||
|
XmlElement xmlElement = null;
|
||||||
|
xmlElement = _file.CreateElement(orginalTableName);
|
||||||
|
parentElement.AppendChild(xmlElement);
|
||||||
|
|
||||||
|
DoRowValue(xmlElement, "Objektbezeichnung", haltung.Objektbezeichnung);
|
||||||
|
DoRowValue(xmlElement, "Objektart", "1");
|
||||||
|
DoRowValue(xmlElement, "Entwaesserungsart", haltung.Entwaesserung == EEntwaeserung.Regenwasser ? "KR" : haltung.Entwaesserung == EEntwaeserung.Schmutzwasser ? "KS" : "KM");
|
||||||
|
|
||||||
|
XmlElement xmlElement1 = CreateElementFor("Kante", xmlElement);
|
||||||
|
DoRowValue(xmlElement1, "KantenTyp", "0");
|
||||||
|
DoRowValue(xmlElement1, "KnotenZulauf", haltung.StartSchacht.Objektbezeichnung);
|
||||||
|
DoRowValue(xmlElement1, "KnotenZulaufTyp", "0");
|
||||||
|
DoRowValue(xmlElement1, "KnotenAblauf", haltung.EndSchacht.Objektbezeichnung);
|
||||||
|
DoRowValue(xmlElement1, "KnotenAblaufTyp", "0");
|
||||||
|
DoRowValue(xmlElement1, "Material", haltung.Material);
|
||||||
|
|
||||||
|
XmlElement xmlElement2 = CreateElementFor("Profil", xmlElement1);
|
||||||
|
DoRowValue(xmlElement2, "SonderprofilVorhanden", "0");
|
||||||
|
DoRowValue(xmlElement2, "Profilart", "0");
|
||||||
|
DoRowValue(xmlElement2, "Profilbreite", haltung.DN.ToString());
|
||||||
|
DoRowValue(xmlElement2, "Profilhoehe", haltung.DN.ToString());
|
||||||
|
|
||||||
|
xmlElement2 = CreateElementFor("Haltung", xmlElement1);
|
||||||
|
DoRowValue(xmlElement2, "HaltungsFunktion", "1");
|
||||||
|
DoRowValue(xmlElement2, "DMPLaenge", haltung.Haltungslaenge.ToString().Replace(',', '.'));
|
||||||
|
|
||||||
|
xmlElement1 = CreateElementFor("Lage", xmlElement);
|
||||||
|
|
||||||
|
xmlElement1 = CreateElementFor("Geometrie", xmlElement);
|
||||||
|
|
||||||
|
DoRowValue(xmlElement1, "GeoObjekttyp", "L");
|
||||||
|
xmlElement2 = CreateElementFor("Geometriedaten", xmlElement1);
|
||||||
|
XmlElement xmlElement3 = CreateElementFor("Kanten", xmlElement2);
|
||||||
|
XmlElement xmlElement4 = CreateElementFor("Kante", xmlElement3);
|
||||||
|
|
||||||
|
XmlElement xmlElement5 = CreateElementFor("Start", xmlElement4);
|
||||||
|
DoRowValue(xmlElement5, "Rechtswert", haltung.StartSchacht.SohlRechtsWert.ToString().Replace(',', '.'));
|
||||||
|
DoRowValue(xmlElement5, "Hochwert", haltung.StartSchacht.SohlHochWert.ToString().Replace(',', '.'));
|
||||||
|
DoRowValue(xmlElement5, "Punkthoehe", haltung.StartSchacht.SohlHoehe.ToString().Replace(',', '.'));
|
||||||
|
DoRowValue(xmlElement5, "PunktattributAbwasser", "SMP");
|
||||||
|
|
||||||
|
xmlElement5 = CreateElementFor("Ende", xmlElement4);
|
||||||
|
DoRowValue(xmlElement5, "Rechtswert", haltung.EndSchacht.SohlRechtsWert.ToString().Replace(',', '.'));
|
||||||
|
DoRowValue(xmlElement5, "Hochwert", haltung.EndSchacht.SohlHochWert.ToString().Replace(',', '.'));
|
||||||
|
DoRowValue(xmlElement5, "Punkthoehe", haltung.EndSchacht.SohlHoehe.ToString().Replace(',', '.'));
|
||||||
|
DoRowValue(xmlElement5, "PunktattributAbwasser", "SMP");
|
||||||
|
|
||||||
|
|
||||||
|
return xmlElement;
|
||||||
|
}
|
||||||
|
|
||||||
|
private XmlElement DoRow(XmlElement parentElement, string originTableName)
|
||||||
|
{
|
||||||
|
XmlElement xmlElement = null;
|
||||||
|
xmlElement = _file.CreateElement(originTableName);
|
||||||
|
parentElement.AppendChild(xmlElement);
|
||||||
|
return xmlElement;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void DoCollectives1Labels(XmlElement dataCollectiveElement)
|
||||||
|
{
|
||||||
|
XmlElement parentElement = CreateElementFor("Kennungen", dataCollectiveElement);
|
||||||
|
XmlElement xmlElement = CreateElementFor("Kollektiv", parentElement);
|
||||||
|
DoRowValue(xmlElement, "Kennung", "STA01");
|
||||||
|
DoRowValue(xmlElement, "Kollektivart", "1");
|
||||||
|
XmlElement parentElement2 = CreateElementFor("Kollektiveigenschaft", xmlElement);
|
||||||
|
XmlElement parentElement3 = CreateElementFor("Stammdaten", parentElement2);
|
||||||
|
DoRowValue(parentElement3, "Stammdatentyp", "1");
|
||||||
|
DoRowValue(parentElement3, "Bautechnik", "1");
|
||||||
|
DoRowValue(parentElement3, "Geometrie", "1");
|
||||||
|
DoRowValue(parentElement3, "Sanierung", "0");
|
||||||
|
DoRowValue(parentElement3, "Umfeld", "0");
|
||||||
|
|
||||||
|
//DoRow(parentElement2, "Zustandsdaten");
|
||||||
|
//DoRow(parentElement2, "Hydraulikdaten");
|
||||||
|
//DoRow(parentElement2, "Betriebsdaten");
|
||||||
|
DoRowValue(xmlElement, "Regelwerk", ExportVersionen[EExportType.XML2013].Item2);
|
||||||
|
DoRowValue(xmlElement, "Bearbeitungsstand", "2");
|
||||||
|
DoRowValue(xmlElement, "Kommentar", "test");
|
||||||
|
}
|
||||||
|
|
||||||
|
private XmlElement DoRowValue(XmlElement rowElement, string originColName, string value)
|
||||||
|
{
|
||||||
|
XmlElement xmlElement = CreateElementFor(originColName, rowElement);
|
||||||
|
if (value != "")
|
||||||
|
{
|
||||||
|
xmlElement.InnerText = value;
|
||||||
|
}
|
||||||
|
return xmlElement;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
235
WWTech_KanalSchnittstelle/Exporter/XML/XML2017.cs
Normal file
235
WWTech_KanalSchnittstelle/Exporter/XML/XML2017.cs
Normal file
@@ -0,0 +1,235 @@
|
|||||||
|
using Microsoft.Win32.SafeHandles;
|
||||||
|
using SewerStammGen.Shared.Contracts;
|
||||||
|
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 System.Xml;
|
||||||
|
|
||||||
|
|
||||||
|
// TODO: Admindaten fehlen
|
||||||
|
|
||||||
|
// TODO: Datenkollektive fehlen Datenstatus und Erstellungsdatum
|
||||||
|
// Stammdatenkollektiv auszufüllen
|
||||||
|
/*
|
||||||
|
Stammdatenkollektiv fehlt: GeoObjektart unter Geometrie
|
||||||
|
|
||||||
|
|
||||||
|
*/
|
||||||
|
namespace WWTech_KanalSchnittstelle.Exporter.XML
|
||||||
|
{
|
||||||
|
public class XML2017 : IExport
|
||||||
|
{
|
||||||
|
private XmlDocument _file;
|
||||||
|
private List<Schacht> _schaechte;
|
||||||
|
private List<Kanal> _haltungen;
|
||||||
|
|
||||||
|
private static Dictionary<EExportType, Tuple<string, string>> ExportVersionen = new Dictionary<EExportType, Tuple<string, string>>()
|
||||||
|
{
|
||||||
|
{ EExportType.XML2006, new Tuple<string, string>("2006-10","2") },
|
||||||
|
{ EExportType.XML2013, new Tuple<string, string>("2013-02","5") },
|
||||||
|
{ EExportType.XML2017, new Tuple<string, string>("2017-07","6") }
|
||||||
|
};
|
||||||
|
|
||||||
|
public async Task<bool> Export(string projektname, EKodierungssystem kodierungssystem,List<Kanal> haltungen, List<Schacht> schaechte, IWWLog logger)
|
||||||
|
{
|
||||||
|
_schaechte = schaechte;
|
||||||
|
_haltungen = haltungen;
|
||||||
|
_file = new XmlDocument();
|
||||||
|
XmlDeclaration newChild = _file.CreateXmlDeclaration("1.0", "ISO-8859-1", "yes");
|
||||||
|
_file.AppendChild(newChild);
|
||||||
|
XmlElement xmlElement = CreateElementFor("Identifikation", _file);
|
||||||
|
xmlElement.SetAttribute("xmlns", "http://www.ofd-hannover.la/Identifikation");
|
||||||
|
XmlElement xmlElement2 = CreateElementFor("Version", xmlElement);
|
||||||
|
xmlElement2.InnerText = ExportVersionen[EExportType.XML2017].Item1; // XML Version
|
||||||
|
|
||||||
|
DoAdmindata(xmlElement);
|
||||||
|
DoCollectives(xmlElement);
|
||||||
|
|
||||||
|
_file.Save("test.xml");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private XmlElement CreateElementFor(string name, XmlNode parentElement)
|
||||||
|
{
|
||||||
|
XmlElement xmlElement = _file.CreateElement(name);
|
||||||
|
parentElement.AppendChild(xmlElement);
|
||||||
|
return xmlElement;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void DoAdmindata(XmlElement idElement)
|
||||||
|
{
|
||||||
|
XmlElement parentElement = CreateElementFor("Admindaten", idElement);
|
||||||
|
XmlElement Liegenschaft = CreateElementFor("Liegenschaft", parentElement);
|
||||||
|
DoRowValue(Liegenschaft, "Liegenschaftsnummer", "0");
|
||||||
|
DoRowValue(Liegenschaft, "Objektnummer", "0");
|
||||||
|
DoRowValue(Liegenschaft, "Liegenschaftsbezeichnung", "0");
|
||||||
|
DoRowValue(Liegenschaft, "Liegenschaftsort", "0");
|
||||||
|
DoRowValue(Liegenschaft, "Liegenschaftsnutzung", "komunal");
|
||||||
|
|
||||||
|
XmlElement Verwaltung = CreateElementFor("Verwaltung", parentElement);
|
||||||
|
DoRowValue(Verwaltung, "DienststelleVerwaltend", "123");
|
||||||
|
DoRowValue(Verwaltung, "DienststelleHausverwaltend", "123");
|
||||||
|
DoRowValue(Verwaltung, "DienststelleBauaufsicht", "123");
|
||||||
|
DoRowValue(Verwaltung, "DienststelleBaudurchfuehrung", "123");
|
||||||
|
DoRowValue(Verwaltung, "NummerDienststelleBaudurchfuehrung", "123");
|
||||||
|
DoRowValue(Verwaltung, "Zustaendigkeitsbereich", "123");
|
||||||
|
DoRowValue(Verwaltung, "Aktenzeichen", "123");
|
||||||
|
DoRowValue(Verwaltung, "Abwasserbeseitigungspflicht", "1");
|
||||||
|
DoRowValue(Verwaltung, "Wasserbehoerde", "123");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void DoCollectives(XmlElement idElement)
|
||||||
|
{
|
||||||
|
XmlElement dataCollectiveElement = DoRow(idElement, "Datenkollektive");
|
||||||
|
DoRowValue(dataCollectiveElement, "Datenstatus", "1");
|
||||||
|
DoRowValue(dataCollectiveElement, "Erstellungsdatum", "2023-07-25");
|
||||||
|
DoCollectives1Labels(dataCollectiveElement);
|
||||||
|
DoCollectives2Base(dataCollectiveElement);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void DoCollectives2Base(XmlElement dataCollectiveElement)
|
||||||
|
{
|
||||||
|
XmlElement parentElement = DoRow(dataCollectiveElement, "Stammdatenkollektiv");
|
||||||
|
|
||||||
|
foreach (Kanal haltung in _haltungen)
|
||||||
|
{
|
||||||
|
XmlElement xmlElement = DoHaltungRow(haltung, parentElement, "AbwassertechnischeAnlage");
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (Schacht schacht in _schaechte)
|
||||||
|
{
|
||||||
|
XmlElement xmlElement = DoSchachtRow(schacht, parentElement, "AbwassertechnischeAnlage");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private XmlElement DoSchachtRow(Schacht schacht, XmlElement parentElement, string originTableName)
|
||||||
|
{
|
||||||
|
XmlElement xmlElement = null;
|
||||||
|
xmlElement = _file.CreateElement(originTableName);
|
||||||
|
parentElement.AppendChild(xmlElement);
|
||||||
|
|
||||||
|
DoRowValue(xmlElement, "Objektbezeichnung", schacht.Objektbezeichnung);
|
||||||
|
DoRowValue(xmlElement, "Objektart", "2");
|
||||||
|
DoRowValue(xmlElement, "Entwaesserungsart", schacht.Entwaesserung == EEntwaeserung.Regenwasser ? "KR" : schacht.Entwaesserung == EEntwaeserung.Schmutzwasser ? "KS" : "KM");
|
||||||
|
|
||||||
|
XmlElement xmlElement1 = CreateElementFor("Knoten", xmlElement);
|
||||||
|
DoRowValue(xmlElement1, "KnotenTyp", "0");
|
||||||
|
|
||||||
|
XmlElement xmlElement2 = CreateElementFor("Schacht", xmlElement1);
|
||||||
|
DoRowValue(xmlElement2, "SchachtFunktion", "1");
|
||||||
|
|
||||||
|
XmlElement GeometrieElement = CreateElementFor("Geometrie", xmlElement);
|
||||||
|
XmlElement GeometrieDaten = CreateElementFor("Geometriedaten", GeometrieElement);
|
||||||
|
XmlElement KnotenElement = CreateElementFor("Knoten", GeometrieDaten);
|
||||||
|
XmlElement PunktElement = CreateElementFor("Punkt", KnotenElement);
|
||||||
|
DoRowValue(PunktElement, "Rechtswert", schacht.SohlRechtsWert.ToString().Replace(',', '.'));
|
||||||
|
DoRowValue(PunktElement, "Hochwert", schacht.SohlHochWert.ToString().Replace(',', '.'));
|
||||||
|
DoRowValue(PunktElement, "Punkthoehe", schacht.SohlHoehe.ToString().Replace(',', '.'));
|
||||||
|
DoRowValue(PunktElement, "PunktattributAbwasser", "SMP");
|
||||||
|
PunktElement = CreateElementFor("Punkt", KnotenElement);
|
||||||
|
if(schacht.DeckelRechtsWert != 0) DoRowValue(PunktElement, "Rechtswert", schacht.DeckelRechtsWert.ToString().Replace(',', '.'));
|
||||||
|
if(schacht.DeckelHochWert != 0) DoRowValue(PunktElement, "Hochwert", schacht.DeckelHochWert.ToString().Replace(',', '.'));
|
||||||
|
DoRowValue(PunktElement, "Punkthoehe", schacht.DeckelHoehe.ToString().Replace(',', '.'));
|
||||||
|
DoRowValue(PunktElement, "PunktattributAbwasser", "DMP");
|
||||||
|
return xmlElement;
|
||||||
|
}
|
||||||
|
|
||||||
|
private XmlElement DoHaltungRow(Kanal haltung, XmlElement parentElement, string orginalTableName)
|
||||||
|
{
|
||||||
|
XmlElement xmlElement = null;
|
||||||
|
xmlElement = _file.CreateElement(orginalTableName);
|
||||||
|
parentElement.AppendChild(xmlElement);
|
||||||
|
|
||||||
|
DoRowValue(xmlElement, "Objektbezeichnung", haltung.Objektbezeichnung);
|
||||||
|
DoRowValue(xmlElement, "Objektart", "1");
|
||||||
|
DoRowValue(xmlElement, "Entwaesserungsart", haltung.Entwaesserung == EEntwaeserung.Regenwasser ? "KR" : haltung.Entwaesserung == EEntwaeserung.Schmutzwasser ? "KS" : "KM");
|
||||||
|
|
||||||
|
XmlElement xmlElement1 = CreateElementFor("Kante", xmlElement);
|
||||||
|
DoRowValue(xmlElement1, "KantenTyp", "0");
|
||||||
|
DoRowValue(xmlElement1, "KnotenZulauf", haltung.StartSchacht.Objektbezeichnung);
|
||||||
|
DoRowValue(xmlElement1, "KnotenZulaufTyp", "0");
|
||||||
|
DoRowValue(xmlElement1, "KnotenAblauf", haltung.EndSchacht.Objektbezeichnung);
|
||||||
|
DoRowValue(xmlElement1, "KnotenAblaufTyp", "0");
|
||||||
|
DoRowValue(xmlElement1, "Material", haltung.Material);
|
||||||
|
|
||||||
|
XmlElement xmlElement2 = CreateElementFor("Profil", xmlElement1);
|
||||||
|
DoRowValue(xmlElement2, "SonderprofilVorhanden", "0");
|
||||||
|
DoRowValue(xmlElement2, "Profilart", "0");
|
||||||
|
DoRowValue(xmlElement2, "Profilbreite", haltung.DN.ToString());
|
||||||
|
DoRowValue(xmlElement2, "Profilhoehe", haltung.DN.ToString());
|
||||||
|
|
||||||
|
xmlElement2 = CreateElementFor("Haltung", xmlElement1);
|
||||||
|
DoRowValue(xmlElement2, "HaltungsFunktion", "1");
|
||||||
|
DoRowValue(xmlElement2, "DMPLaenge", haltung.Haltungslaenge.ToString().Replace(',', '.'));
|
||||||
|
|
||||||
|
xmlElement1 = CreateElementFor("Lage", xmlElement);
|
||||||
|
|
||||||
|
xmlElement1 = CreateElementFor("Geometrie", xmlElement);
|
||||||
|
|
||||||
|
DoRowValue(xmlElement1, "GeoObjekttyp", "L");
|
||||||
|
xmlElement2 = CreateElementFor("Geometriedaten", xmlElement1);
|
||||||
|
XmlElement xmlElement3 = CreateElementFor("Kanten", xmlElement2);
|
||||||
|
XmlElement xmlElement4 = CreateElementFor("Kante", xmlElement3);
|
||||||
|
|
||||||
|
XmlElement xmlElement5 = CreateElementFor("Start", xmlElement4);
|
||||||
|
DoRowValue(xmlElement5, "Rechtswert", haltung.StartSchacht.SohlRechtsWert.ToString().Replace(',', '.'));
|
||||||
|
DoRowValue(xmlElement5, "Hochwert", haltung.StartSchacht.SohlHochWert.ToString().Replace(',', '.'));
|
||||||
|
DoRowValue(xmlElement5, "Punkthoehe", haltung.StartSchacht.SohlHoehe.ToString().Replace(',', '.'));
|
||||||
|
DoRowValue(xmlElement5, "PunktattributAbwasser", "SMP");
|
||||||
|
|
||||||
|
xmlElement5 = CreateElementFor("Ende", xmlElement4);
|
||||||
|
DoRowValue(xmlElement5, "Rechtswert", haltung.EndSchacht.SohlRechtsWert.ToString().Replace(',', '.'));
|
||||||
|
DoRowValue(xmlElement5, "Hochwert", haltung.EndSchacht.SohlHochWert.ToString().Replace(',', '.'));
|
||||||
|
DoRowValue(xmlElement5, "Punkthoehe", haltung.EndSchacht.SohlHoehe.ToString().Replace(',', '.'));
|
||||||
|
DoRowValue(xmlElement5, "PunktattributAbwasser", "SMP");
|
||||||
|
|
||||||
|
|
||||||
|
return xmlElement;
|
||||||
|
}
|
||||||
|
|
||||||
|
private XmlElement DoRow(XmlElement parentElement, string originTableName)
|
||||||
|
{
|
||||||
|
XmlElement xmlElement = null;
|
||||||
|
xmlElement = _file.CreateElement(originTableName);
|
||||||
|
parentElement.AppendChild(xmlElement);
|
||||||
|
return xmlElement;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void DoCollectives1Labels(XmlElement dataCollectiveElement)
|
||||||
|
{
|
||||||
|
XmlElement parentElement = CreateElementFor("Kennungen", dataCollectiveElement);
|
||||||
|
XmlElement xmlElement = CreateElementFor("Kollektiv", parentElement);
|
||||||
|
DoRowValue(xmlElement, "Kennung", "STA01");
|
||||||
|
DoRowValue(xmlElement, "Kollektivart", "1");
|
||||||
|
XmlElement parentElement2 = CreateElementFor("Kollektiveigenschaft", xmlElement);
|
||||||
|
XmlElement parentElement3 = CreateElementFor("Stammdaten", parentElement2);
|
||||||
|
DoRowValue(parentElement3, "Stammdatentyp", "1");
|
||||||
|
DoRowValue(parentElement3, "Bautechnik", "1");
|
||||||
|
DoRowValue(parentElement3, "Geometrie", "1");
|
||||||
|
DoRowValue(parentElement3, "Sanierung", "0");
|
||||||
|
DoRowValue(parentElement3, "Umfeld", "0");
|
||||||
|
|
||||||
|
//DoRow(parentElement2, "Zustandsdaten");
|
||||||
|
//DoRow(parentElement2, "Hydraulikdaten");
|
||||||
|
//DoRow(parentElement2, "Betriebsdaten");
|
||||||
|
DoRowValue(xmlElement, "Regelwerk", ExportVersionen[EExportType.XML2017].Item2);
|
||||||
|
DoRowValue(xmlElement, "Bearbeitungsstand", "2");
|
||||||
|
DoRowValue(xmlElement, "Kommentar", "test");
|
||||||
|
}
|
||||||
|
|
||||||
|
private XmlElement DoRowValue(XmlElement rowElement, string originColName, string value)
|
||||||
|
{
|
||||||
|
XmlElement xmlElement = CreateElementFor(originColName, rowElement);
|
||||||
|
if (value != "")
|
||||||
|
{
|
||||||
|
xmlElement.InnerText = value;
|
||||||
|
}
|
||||||
|
return xmlElement;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -50,7 +50,17 @@ namespace WWTech_KanalSchnittstelle.Importer
|
|||||||
{ "3310", EEntwaeserung.Regenwasser }
|
{ "3310", EEntwaeserung.Regenwasser }
|
||||||
};
|
};
|
||||||
|
|
||||||
if(!File.Exists(filename))
|
Dictionary<string, ESchachtType> schachtKennung = new Dictionary<string, ESchachtType>()
|
||||||
|
{
|
||||||
|
{ "1100", ESchachtType.Hauptkanal },
|
||||||
|
{ "1200", ESchachtType.Hauptkanal },
|
||||||
|
{ "1300", ESchachtType.Hauptkanal },
|
||||||
|
{ "3110", ESchachtType.Revisionschacht },
|
||||||
|
{ "3210", ESchachtType.Revisionschacht },
|
||||||
|
{ "3310", ESchachtType.Revisionschacht }
|
||||||
|
};
|
||||||
|
|
||||||
|
if (!File.Exists(filename))
|
||||||
{
|
{
|
||||||
throw new FileNotFoundException(filename);
|
throw new FileNotFoundException(filename);
|
||||||
}
|
}
|
||||||
@@ -93,10 +103,12 @@ namespace WWTech_KanalSchnittstelle.Importer
|
|||||||
if (parsed.Length >= 4)
|
if (parsed.Length >= 4)
|
||||||
{
|
{
|
||||||
schacht.Entwaesserung = entwaesserungKennung[parsed[4]];
|
schacht.Entwaesserung = entwaesserungKennung[parsed[4]];
|
||||||
|
schacht.SchachtType = schachtKennung[parsed[4]];
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
schacht.Entwaesserung = EEntwaeserung.Schmutzwasser;
|
schacht.Entwaesserung = EEntwaeserung.Schmutzwasser;
|
||||||
|
schacht.SchachtType = ESchachtType.Hauptkanal;
|
||||||
}
|
}
|
||||||
schacht.Projekt = projekt;
|
schacht.Projekt = projekt;
|
||||||
|
|
||||||
|
|||||||
@@ -20,37 +20,59 @@ namespace WWTech_KanalSchnittstelle.Exporter.XML.Tests
|
|||||||
{
|
{
|
||||||
new Schacht()
|
new Schacht()
|
||||||
{
|
{
|
||||||
Objektbezeichnung = "SW01",
|
Objektbezeichnung = "08930438",
|
||||||
SohlHoehe = 0112.7m,
|
SohlHoehe = -3.000m,
|
||||||
DeckelHoehe = 0108.8m,
|
DeckelHoehe = 0.670m,
|
||||||
SohlHochWert = 123.93m,
|
SohlHochWert = 5927107.130m,
|
||||||
SohlRechtsWert = 123.92m,
|
SohlRechtsWert = 389469.142m,
|
||||||
DeckelHochWert = 14785,
|
Entwaesserung = EEntwaeserung.Schmutzwasser
|
||||||
|
|
||||||
},
|
},
|
||||||
new Schacht()
|
new Schacht()
|
||||||
{
|
{
|
||||||
Objektbezeichnung = "SW02",
|
Objektbezeichnung = "08930437",
|
||||||
SohlHoehe = 145,
|
SohlHoehe = -2.060m,
|
||||||
SohlHochWert = 14,
|
DeckelHoehe = 0.690m,
|
||||||
SohlRechtsWert = 28,
|
SohlHochWert = 5927131.379m,
|
||||||
DeckelHochWert = 14,
|
SohlRechtsWert = 389524.332m,
|
||||||
}
|
Entwaesserung = EEntwaeserung.Schmutzwasser
|
||||||
|
},
|
||||||
|
new Schacht()
|
||||||
|
{
|
||||||
|
Objektbezeichnung = "08930436",
|
||||||
|
SohlHoehe = -1.900m,
|
||||||
|
DeckelHoehe = 0.680m,
|
||||||
|
SohlHochWert = 5927154.010m,
|
||||||
|
SohlRechtsWert = 389575.684m,
|
||||||
|
Entwaesserung = EEntwaeserung.Schmutzwasser
|
||||||
|
},
|
||||||
|
|
||||||
};
|
};
|
||||||
List<Kanal> haltungen = new List<Kanal>()
|
List<Kanal> haltungen = new List<Kanal>()
|
||||||
{
|
{
|
||||||
new Kanal()
|
new Kanal()
|
||||||
{
|
{
|
||||||
StartSchacht = schaechte[0],
|
StartSchacht = schaechte[1],
|
||||||
EndSchacht = schaechte[1],
|
EndSchacht = schaechte[0],
|
||||||
DN = 200,
|
DN = 250,
|
||||||
Entwaesserung = EEntwaeserung.Regenwasser,
|
Entwaesserung = EEntwaeserung.Schmutzwasser,
|
||||||
Haltungslaenge = 53.93m,
|
Haltungslaenge = 60.20m,
|
||||||
Material = "STZ",
|
Material = "STZ",
|
||||||
Objektbezeichnung = schaechte[0].Objektbezeichnung
|
Objektbezeichnung = schaechte[1].Objektbezeichnung
|
||||||
|
},
|
||||||
|
new Kanal()
|
||||||
|
{
|
||||||
|
StartSchacht = schaechte[2],
|
||||||
|
EndSchacht = schaechte[1],
|
||||||
|
DN = 250,
|
||||||
|
Entwaesserung = EEntwaeserung.Schmutzwasser,
|
||||||
|
Haltungslaenge = 56.30m,
|
||||||
|
Material = "STZ",
|
||||||
|
Objektbezeichnung = schaechte[2].Objektbezeichnung
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
XML2006 xmloutput = new XML2006();
|
XML2006 xmloutput = new XML2006();
|
||||||
xmloutput.Export("test.xml", EKodierungssystem.EN13508_2_2011, haltungen, schaechte,null);
|
xmloutput.Export("test.xml", EKodierungssystem.EN13508_2_2011, EExportType.XML2013, haltungen, schaechte,null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user