Protokollwriter weitergeführt

Lässt sich noch nicht bauen!
This commit is contained in:
Husky
2021-02-23 22:03:48 +01:00
parent 7658dbdedd
commit 709f16ad47
7 changed files with 150 additions and 1 deletions

13
Models/Auftraggeber.cs Normal file
View File

@@ -0,0 +1,13 @@
using System;
using System.Collections;
using System.Collections.Generic;
namespace Models {
public class Auftraggeber {
public string Name ="";
public string Ort = "";
public string Strasse = "";
public string Tel = "";
public IEnumerable<Bauvorhaben> Baustellen = new List<Bauvorhaben>();
}
}

14
Models/Bauvorhaben.cs Normal file
View File

@@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Linq;
namespace Models {
public class Bauvorhaben {
Auftraggeber auftraggeber;
public Auftraggeber Auftraggeber {get => auftraggeber; set => auftraggeber = value;}
public string Standort = string.Empty;
public string Strasse = string.Empty;
public string Ort = string.Empty;
public IEnumerable<Inspektionsobjekt> Prüfobjekte = new List<Inspektionsobjekt>();
}
}

View File

@@ -11,8 +11,9 @@ namespace Models
decimal objektLänge;
decimal durchmesser;
string bemerkung;
Bauvorhaben bauvorhaben;
List<PressureTest> pressureTests = new List<PressureTest>();
public Bauvorhaben Bauvorhaben { get => bauvorhaben; set => bauvorhaben = value;}
public List<PressureTest> PressureTests { get => pressureTests; set => pressureTests = value; }
public string Objektname { get => objektname; set => objektname = value; }
public string ObereSchacht { get => obereSchacht; set => obereSchacht = value; }

View File

@@ -2,6 +2,7 @@
<ItemGroup>
<ProjectReference Include="..\ProtokollWriterContract\ProtokollWriterContract.csproj" />
<ProjectReference Include="..\Models\Models.csproj" />
</ItemGroup>
<PropertyGroup>

View File

@@ -0,0 +1,108 @@
using System;
using System.IO;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using Models;
using ProtokollWriterContract;
namespace ProtokollWriter {
/// Erstellt eine Städtler und Beck Dichtheitsprüfdatei
public class SBTextFileWriter : IProtokollWriter
{
string[] content;
ArrayList newFile = new ArrayList();
string targetFile;
Hashtable hashtable = new Hashtable() {
{"DATUM",""},
{"PROJEKTNR","" },
{"PRUEFNR","" },
{"AUFTRAGGEBER_NAME","" },
{"AUFTRAGGEBER_STRASSE","" },
{"AUFTRAGGEBER_ORT","" },
{"AUFTRAGGEBER_TEL","" },
{"BAUVORHABEN_STRASSE","" },
{"BAUVORHABEN_ORT","" },
{"BAUVORHABEN_STANDORT","" },
{"MESSDATEI","" },
{"DN","" },
{"LAENGE","" },
{"VOLUMEN","" },
{"HALTUNGNR","" },
{"VONSCHACHT","" },
{"BISSCHACHT","" },
{"PRUEFRESULTAT","" },
{"BEMERKUNG","" }
};
Inspektionsobjekt inspObjekt;
public void WriteProtokoll(Inspektionsobjekt inspektionsobjekt)
{
inspObjekt = inspektionsobjekt;
}
void ReadVorlage() {
content = File.ReadAllLines("./vorlage.txt",Encoding.Default);
}
void Ersetzen() {
hashtable["DATUM"] = prüfdatum;
hashtable["PRUEFNR"] = getPrüfnummer();
hashtable["DN"] = inspObjekt.Durchmesser;
hashtable["LAENGE"] = inspObjekt.ObjektLänge;
hashtable["VOLUMEN"] = PruefVolumen();
hashtable["AUFTRAGGEBER_NAME"] = inspObjekt.Bauvorhaben.Auftraggeber.Name;
hashtable["AUFTRAGGEBER_STRASSE"] = inspObjekt.Bauvorhaben.Auftraggeber.Strasse;
hashtable["AUFTRAGGEBER_ORT"] = inspObjekt.Bauvorhaben.Auftraggeber.Ort;
hashtable["AUFTRAGGEBER_TEL"] = inspObjekt.Bauvorhaben.Auftraggeber.Tel;
hashtable["VONSCHACHT"] = inspObjekt.ObereSchacht;
hashtable["BISSCHACHT"] = inspObjekt.UntereSchacht;
hashtable["PROJEKTNR"] = Projektnummer;
hashtable["HALTUNGNR"] = inspObjekt.Objektname != null ? inspObjekt.Objektname : inspObjekt.ObereSchacht;
hashtable["MESSDATEI"] = inspObjekt.Objektname != null ? inspObjekt.Objektname : inspObjekt.ObereSchacht;
hashtable["BAUVORHABEN_STRASSE"] = inspObjekt.Bauvorhaben.Strasse;
hashtable["BAUVORHABEN_ORT"] = inspObjekt.Bauvorhaben.Ort;
hashtable["BAUVORHABEN_STANDORT"] = inspObjekt.Bauvorhaben.Strasse;
hashtable["BEMERKUNG"] = inspObjekt.Bemerkung;
hashtable["PRUEFRESULTAT"] = Bestanden ? "Prüfung Bestanden" : "Prüfung N I C H T Bestanden";
}
void WriteFile() {
string zeile;
for(int i = 0; i < content.Length; i++) {
zeile = content[i];
if(zeile.Contains("{")) {
int start = zeile.IndexOf("{");
int ende = zeile.IndexOf("}");
string cmd = zeile.Substring(start+1,(ende-start) -1);
if(hashtable.ContainsKey(cmd)) {
string rep = "{"+cmd+"}";
string n = zeile.Replace(rep,hashtable[cmd].ToString());
zeile = n;
} else {
if(cmd.StartsWith("@")) {
string n = "";
foreach(MeasureData data in inspObjekt.PressureTests[0].Measuredatas) {
n = string.Format("{0}{1}\r\n",n,data.ToString());
}
zeile = n;
}
}
}
newFile.Add(zeile);
}
File.WriteAllLines(targetFile,FileConverter(newFile),Encoding.Default);
}
string[] FileConverter(ArrayList content) {
string[] result = new string[content.Count];
int counter = 0;
foreach(var x in content) {
string c = (string)x;
result[counter] = c;
counter++;
}
return result;
}
}
}

View File

@@ -0,0 +1,8 @@
using System;
using Models;
namespace ProtokollWriterContract {
public interface IProtokollWriter {
void WriteProtokoll(Inspektionsobjekt inspektionsobjekt);
}
}

View File

@@ -1,5 +1,9 @@
<Project Sdk="Microsoft.NET.Sdk">
<ItemGroup>
<ProjectReference Include="..\Models\Models.csproj" />
</ItemGroup>
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>