53 lines
1.8 KiB
C#
53 lines
1.8 KiB
C#
using SewerStammGen.Shared.Domain;
|
|
using Shared.Contracts;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace WWTech_KanalSchnittstelle.Importer
|
|
{
|
|
public class CSVImporter : IImport
|
|
{
|
|
private string[] input;
|
|
private readonly Projekt projekt;
|
|
|
|
#pragma warning disable CS8618 // Ein Non-Nullable-Feld muss beim Beenden des Konstruktors einen Wert ungleich NULL enthalten. Erwägen Sie die Deklaration als Nullable.
|
|
public CSVImporter(int projektID)
|
|
#pragma warning restore CS8618 // Ein Non-Nullable-Feld muss beim Beenden des Konstruktors einen Wert ungleich NULL enthalten. Erwägen Sie die Deklaration als Nullable.
|
|
{
|
|
projekt = new Projekt() { Id = projektID };
|
|
}
|
|
public List<Schacht> LoadSchaechte(string filename, EEntwaeserung entwaeserung)
|
|
{
|
|
List<Schacht> result = new List<Schacht>();
|
|
|
|
if(!File.Exists(filename))
|
|
{
|
|
throw new FileNotFoundException(filename);
|
|
}
|
|
|
|
input = File.ReadAllLines(filename);
|
|
int zeile = -1;
|
|
|
|
foreach (string line in input)
|
|
{
|
|
zeile++;
|
|
if (zeile == 0) continue;
|
|
string[] parsed = line.Split(new char[] { ';' });
|
|
result.Add(new Schacht()
|
|
{
|
|
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
|
|
});
|
|
}
|
|
return result;
|
|
}
|
|
}
|
|
}
|