Kandis exporter geschrieben

Deckel und Sohlhöhe werden gespeichert
This commit is contained in:
2023-04-19 20:52:02 +02:00
parent 1555e54e82
commit 0877d2b308
16 changed files with 400 additions and 112 deletions

View File

@@ -8,6 +8,11 @@ using System.Threading.Tasks;
namespace WWTech_KanalSchnittstelle.Importer
{
internal enum EKennung
{
DECKEL = 1,
SOHLE = 2
}
public class CSVImporter : IImport
{
private string[] input;
@@ -36,15 +41,42 @@ namespace WWTech_KanalSchnittstelle.Importer
zeile++;
if (zeile == 0) continue;
string[] parsed = line.Split(new char[] { ';' });
result.Add(new Schacht()
string objektbezeichnung = parsed[0];
string objektname = objektbezeichnung.Substring(0, objektbezeichnung.Length - 2);
EKennung kennung = (EKennung)Convert.ToInt32(objektbezeichnung.Substring(objektbezeichnung.Length - 2, 2));
bool neueSchacht = false;
Schacht? schacht = result.FindLast(x => x.Objektbezeichnung.Equals(objektname) && x.Projekt.Id.Equals(projekt.Id));
if (schacht == null)
{
Objektbezeichnung = parsed[0],
RechtsWert = decimal.Parse(parsed[1].Replace('.',',')),
HochWert = decimal.Parse(parsed[2].Replace('.', ',')),
DeckelHoehe = decimal.Parse(parsed[3].Replace('.', ',')),
Projekt = projekt,
Entwaesserung = entwaeserung
});
schacht = new Schacht();
neueSchacht = true;
}
if(kennung == EKennung.DECKEL)
{
schacht.DeckelRechtsWert = decimal.Parse(parsed[1].Replace('.', ','));
schacht.DeckelHochWert = decimal.Parse(parsed[2].Replace('.', ','));
schacht.DeckelHoehe = decimal.Parse(parsed[3].Replace('.', ','));
}
if(kennung == EKennung.SOHLE)
{
schacht.SohlRechtsWert = decimal.Parse(parsed[1].Replace('.', ','));
schacht.SohlHochWert = decimal.Parse(parsed[2].Replace('.', ','));
schacht.SohlHoehe = decimal.Parse(parsed[3].Replace('.', ','));
}
schacht.Projekt = projekt;
schacht.Entwaesserung = entwaeserung;
if (neueSchacht)
{
schacht.Objektbezeichnung = objektname;
result.Add(schacht);
}
}
return result;
}