using BerichtGen; using CSVParser; using SanShared; using SanShared.Exceptions; using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace KlassenBIB { /// /// Inliner class /// /// public sealed class InlinerSanierung : AbstractSanieren, IMakeProtokol { double kalibrierUnterdruck = -0.5; double kalibierWalzenAbstand = 0.9; double harzKalibrierTemperatur; DateTime datumKalibrierung; string harzChargenummer; string linerChargenummer; string harzTyp; string linerTyp; double harzbedarf = 1.8; uint rueckholgeschwindigkeit; bool geschlosseneEnde = false; bool preliner = false; DateTime anfangAushaertung; DateTime endeAushaertung; string ort; string bediener; DateTime anfangKalibrierung; DateTime endeKalibirierung; AbstractImprägnier imprägnierungsbericht; public double GetGesamtHarzbedarf(double haltungslaenge) { return haltungslaenge * harzbedarf; } public override string CheckVerzeichnisse(string projektpfad) { string path = Path.Combine(projektpfad, PfadZurSan); if (!Directory.Exists(path)) Directory.CreateDirectory(path); //string mypath = Path.Combine(path, Verzeichnispfad); //if (!Directory.Exists(mypath)) Directory.CreateDirectory(mypath); return path; } public Hashtable MakeProtokoll(string destinationPath, IProjekt projekt) { IEnumerable files = Directory.EnumerateFiles(destinationPath, "*.csv", SearchOption.AllDirectories); IReadCSVData csvFile = null; List struktures = null; if (files.Count() > 0) { csvFile = CsvParserFactory.ReadCSVFile(AcceptedCSVFormats.BLUELIGHT, files.Last()); try { try { struktures = csvFile.ReadCSVStrukture(); } catch (CSVImportException) { //MessageBox.Show("Es scheint den Falschen Anlagentyp angegeben worden sein.", "CSV Datei konnte nicht gelesen werden", MessageBoxButtons.OK, MessageBoxIcon.Error); //return false; } this.AnfangAushaertung = struktures.Select(x => x.Zeitstempel).Min(); this.EndeAushaertung = struktures.Select(x => x.Zeitstempel).Max(); this.Rueckholgeschwindigkeit = 0; } catch (FileNotFoundException ex) { Trace.WriteLine(ex.Message); //MessageBox.Show(string.Format("Datei {0} wurde nicht gefunden", ex.FileName)); } } if (struktures != null) { makeGraphic.GetGraphics(struktures, destinationPath); } Hashtable grunddaten = new Hashtable() { {"AG_Vorname","" }, {"hausnummer","" }, {"KLP_Nummer","" }, {"KLP_Datum","" }, {"AG_Ort","" }, {"AG_Strasse","" }, {"AG_Ansprechpartner","" }, {"BM_Ort","" }, {"BM_Strasse","" }, {"BM_Schacht_von","" }, {"BM_Schacht_bis","" }, {"BM_Haltungsmat","" }, {"BM_Haltung_DN","" }, {"BM_Haltunglaenge","" }, { "KL_Wetter","" }, { "Temp_Aussen","" }, { "KL_Temp_Kanal","" }, { "KL_Gen","" }, { "KL_WH","" }, { "KL_STVO","" }, { "KL_HD_true","" }, { "KL_mech_true","" }, { "KL_rob_true","" }, { "KL_HD_date","" }, { "KL_Besatzung", "" }, {"liner_laenge","" }, {"Charge_Liner","" }, {"Charge_Harz","" }, {"harz_bedarf_m","" }, {"gesamt_harz","" }, {"temperatur_harz","" }, {"datum_kalibrierung","" }, {"walzen_abstand","" }, {"vakuum","" }, {"time_start","" }, {"time_ende","" }, {"UVImageTemp","" }, {"UVImageDruck","" }, {"UVImageSpeed","" }, {"liner_type","" }, {"rueckhol_speed","" }, {"harz_type","" } }; double LaengeGesamt = this.Inspektionsobjekt.Haltungslaenge + this.Inspektionsobjekt.Schachtlaenge; grunddaten["hausnummer"] = Inspektionsobjekt.Hausnummer; grunddaten["AG_Vorname"] = projekt.Auftraggeber.Name; grunddaten["KLP_Nummer"] = Inspektionsobjekt.Sanierungsnummer; grunddaten["KLP_Datum"] = this.Datum.ToShortDateString();//DateTime.Now.ToShortDateString(); grunddaten["AG_Ort"] = projekt.Auftraggeber.Ort; grunddaten["AG_Strasse"] = projekt.Auftraggeber.Strasse; grunddaten["AG_Ansprechpartner"] = projekt.Auftraggeber.Ansprechpartner; grunddaten["BM_Ort"] = Inspektionsobjekt.OrtName; grunddaten["BM_Strasse"] = Inspektionsobjekt.StrasseName; grunddaten["BM_Schacht_von"] = Inspektionsobjekt.VonPunkt; grunddaten["BM_Schacht_bis"] = Inspektionsobjekt.BisPunkt ; grunddaten["BM_Haltungsmat"] = Inspektionsobjekt.RohrMaterial; grunddaten["BM_Haltung_DN"] = Inspektionsobjekt.Kanalrohrweite; grunddaten["BM_Haltunglaenge"] = Inspektionsobjekt.Haltungslaenge; grunddaten["KL_Wetter"] = this.Wetter; grunddaten["Temp_Aussen"] = this.TempAusen; grunddaten["KL_Temp_Kanal"] = this.TempKanal; grunddaten["KL_Gen"] = this.GenehmigungVorhanden ? "ja" : "nein"; grunddaten["KL_WH"] = this.WasserhaltungEingerichtet ? "ja" : "nein"; grunddaten["KL_STVO"] = this.STVOAbsicherung ? "ja" : "nein"; grunddaten["KL_HD_true"] = this.HDReinigung ? "X" : " "; grunddaten["KL_mech_true"] = this.VorbereitetMechanisch ? "X": " "; grunddaten["KL_rob_true"] = this.VorbereitetRoboter ? "X": " "; grunddaten["KL_HD_date"] = this.Datum.ToShortDateString(); grunddaten["KL_Besatzung"] = this.Besatzung; grunddaten["liner_laenge"] = Inspektionsobjekt.Haltungslaenge; //LaengeGesamt; grunddaten["Charge_Liner"] = this.LinerChargenummer; grunddaten["Charge_Harz"] = this.HarzChargenummer; grunddaten["harz_bedarf_m"] = harzbedarf; grunddaten["gesamt_harz"] = Inspektionsobjekt.Haltungslaenge * harzbedarf; grunddaten["temperatur_harz"] = this.HarzKalibrierTemperatur; grunddaten["datum_kalibrierung"] = this.DatumKalibrierung.ToShortDateString(); grunddaten["walzen_abstand"] = this.KalibierWalzenAbstand; grunddaten["vakuum"] = this.KalibrierUnterdruck; grunddaten["time_start"] = this.AnfangAushaertung; grunddaten["time_ende"] = this.EndeAushaertung; grunddaten["UVImageTemp"] = Path.Combine(destinationPath, "linerGraph_temp.jpg"); grunddaten["UVImageDruck"] = Path.Combine(destinationPath, "linerGraph_druck.jpg"); grunddaten["UVImageSpeed"] = Path.Combine(destinationPath, "linerGraph_speed.jpg"); grunddaten["rueckhol_speed"] = rueckholgeschwindigkeit; grunddaten["liner_type"] = LinerTyp; grunddaten["harz_type"] = HarzTyp; return grunddaten; } public InlinerSanierung() { //datumKalibrierung = new DateTime(); Verzeichnispfad = "UVAnlage"; if (datumKalibrierung <= DateTime.MinValue || datumKalibrierung >= DateTime.MaxValue) datumKalibrierung = DateTime.Now; } public double KalibrierUnterdruck { get => kalibrierUnterdruck; set => kalibrierUnterdruck = value; } public double KalibierWalzenAbstand { get => kalibierWalzenAbstand; set => kalibierWalzenAbstand = value; } public double HarzKalibrierTemperatur { get => harzKalibrierTemperatur; set => harzKalibrierTemperatur = value; } public DateTime DatumKalibrierung { get { return datumKalibrierung; } set { datumKalibrierung = value; } } public string HarzChargenummer { get => harzChargenummer; set => harzChargenummer = value; } public string LinerChargenummer { get => linerChargenummer; set => linerChargenummer = value; } public double Harzbedarf { get => harzbedarf; set => harzbedarf = value; } public uint Rueckholgeschwindigkeit { get => rueckholgeschwindigkeit; set => rueckholgeschwindigkeit = value; } public bool GeschlosseneEnde { get => geschlosseneEnde; set => geschlosseneEnde = value; } public double HarzBedarf { get => harzbedarf; set => harzbedarf = value; } public string HarzTyp { get => harzTyp; set => harzTyp = value; } public string LinerTyp { get => linerTyp; set => linerTyp = value; } public DateTime AnfangAushaertung { get => anfangAushaertung; set => anfangAushaertung = value; } public DateTime EndeAushaertung { get => endeAushaertung; set => endeAushaertung = value; } public string Ort { get => ort; set => ort = value; } public string Bediener { get => bediener; set => bediener = value; } public DateTime AnfangKalibrierung { get => anfangKalibrierung; set => anfangKalibrierung = value; } public DateTime EndeKalibirierung { get => endeKalibirierung; set => endeKalibirierung = value; } public bool Preliner { get => preliner; set => preliner = value; } public AbstractImprägnier Imprägnierungsbericht { get => imprägnierungsbericht; set => imprägnierungsbericht = value; } } }