From 709f16ad4769d2dafedc60c3bd8093cba03c2a4d Mon Sep 17 00:00:00 2001 From: Husky Date: Tue, 23 Feb 2021 22:03:48 +0100 Subject: [PATCH] =?UTF-8?q?Protokollwriter=20weitergef=C3=BChrt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Lässt sich noch nicht bauen! --- Models/Auftraggeber.cs | 13 +++ Models/Bauvorhaben.cs | 14 +++ Models/Inspektionsobjekt.cs | 3 +- ProtokollWriter/ProtokollWriter.csproj | 1 + ProtokollWriter/SBTextFileWriter.cs | 108 ++++++++++++++++++ ProtokollWriterContract/IProtokollWriter.cs | 8 ++ .../ProtokollWriterContract.csproj | 4 + 7 files changed, 150 insertions(+), 1 deletion(-) create mode 100644 Models/Auftraggeber.cs create mode 100644 Models/Bauvorhaben.cs create mode 100644 ProtokollWriter/SBTextFileWriter.cs create mode 100644 ProtokollWriterContract/IProtokollWriter.cs diff --git a/Models/Auftraggeber.cs b/Models/Auftraggeber.cs new file mode 100644 index 0000000..6c787af --- /dev/null +++ b/Models/Auftraggeber.cs @@ -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 Baustellen = new List(); + } +} \ No newline at end of file diff --git a/Models/Bauvorhaben.cs b/Models/Bauvorhaben.cs new file mode 100644 index 0000000..26af1da --- /dev/null +++ b/Models/Bauvorhaben.cs @@ -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 Prüfobjekte = new List(); + } +} \ No newline at end of file diff --git a/Models/Inspektionsobjekt.cs b/Models/Inspektionsobjekt.cs index a4f921e..7debbcb 100644 --- a/Models/Inspektionsobjekt.cs +++ b/Models/Inspektionsobjekt.cs @@ -11,8 +11,9 @@ namespace Models decimal objektLänge; decimal durchmesser; string bemerkung; + Bauvorhaben bauvorhaben; List pressureTests = new List(); - + public Bauvorhaben Bauvorhaben { get => bauvorhaben; set => bauvorhaben = value;} public List PressureTests { get => pressureTests; set => pressureTests = value; } public string Objektname { get => objektname; set => objektname = value; } public string ObereSchacht { get => obereSchacht; set => obereSchacht = value; } diff --git a/ProtokollWriter/ProtokollWriter.csproj b/ProtokollWriter/ProtokollWriter.csproj index dc6283d..63ece54 100644 --- a/ProtokollWriter/ProtokollWriter.csproj +++ b/ProtokollWriter/ProtokollWriter.csproj @@ -2,6 +2,7 @@ + diff --git a/ProtokollWriter/SBTextFileWriter.cs b/ProtokollWriter/SBTextFileWriter.cs new file mode 100644 index 0000000..8e77026 --- /dev/null +++ b/ProtokollWriter/SBTextFileWriter.cs @@ -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; + } + } +} \ No newline at end of file diff --git a/ProtokollWriterContract/IProtokollWriter.cs b/ProtokollWriterContract/IProtokollWriter.cs new file mode 100644 index 0000000..591cc99 --- /dev/null +++ b/ProtokollWriterContract/IProtokollWriter.cs @@ -0,0 +1,8 @@ +using System; +using Models; + +namespace ProtokollWriterContract { + public interface IProtokollWriter { + void WriteProtokoll(Inspektionsobjekt inspektionsobjekt); + } +} \ No newline at end of file diff --git a/ProtokollWriterContract/ProtokollWriterContract.csproj b/ProtokollWriterContract/ProtokollWriterContract.csproj index 72764a6..500c098 100644 --- a/ProtokollWriterContract/ProtokollWriterContract.csproj +++ b/ProtokollWriterContract/ProtokollWriterContract.csproj @@ -1,5 +1,9 @@ + + + + netstandard2.0