From 2150bad16d353de9bebea8f2feae3039c472b9e6 Mon Sep 17 00:00:00 2001 From: "NBMANTZELOS\\bib" Date: Fri, 28 Jun 2024 13:52:35 +0200 Subject: [PATCH] fast ferig --- PMCProjekt/.vs/PMCProjekt/v17/.suo | Bin 33792 -> 32768 bytes .../.vs/PMCProjekt/v17/DocumentLayout.json | 6 +- PMCProjekt/PMCProjekt/Program.cs | 218 ++++++------------ .../Debug/net8.0/PMCProjekt.AssemblyInfo.cs | 2 +- .../PMCProjekt.AssemblyInfoInputs.cache | 2 +- 5 files changed, 79 insertions(+), 149 deletions(-) diff --git a/PMCProjekt/.vs/PMCProjekt/v17/.suo b/PMCProjekt/.vs/PMCProjekt/v17/.suo index 24c52bfaeb54b68e3e9abc7e42758b7d59a4a895..c9b62f11892bcdf523a0299e3ae245580383d8ee 100644 GIT binary patch delta 2524 zcmdUwQA}G^7=Z7&+(Lm{Xvc-MrK6>mxP`VNsw7>|4g&H8!1)absBA~vrpt&P!zC_dg`$@7i4OSD0>j8&{vN2!GcWVH7Hjjod~T%#f@?mLb7SA zh7yCtZ$8E2rS!0$$`rqKm_Q~WVy}ukh0+Z2G%}0KA@j&H$g{{9WC3{& zNg&T7abyumA}`P?FeQ8bpO#-3mDGw&W`}G=j@ckvnPM?Wm{V*DvgRQZqbRW<6cu3E z=V7NIVM(zkwXCI_SL^x&3N3ic+W<0OVra(3Nm#5K6zTdXBDUwbAzPPX^^kZtD$uoU z&!H>fw4W^{yz1(Ot9%Q@UD13k^8)wC#zW_bS1}NGuc~DVYpR1nWcgx zVqM6U+-vaRoEMbEaJu<^t)zN-P5C5i$9?n@sZl{odd@T0Sn?X^ARMGRs-^4295>|U zxUqt2UVZeO&wOINVd3(r*E?_V>o1kPe8-`!tt>EDJLChUL)zoCw1ZczeF8mj{l*|} zRhSjB)~G09x1P`Pk-Hxf{#Q1J2bhskpnd>|kF0Jq_A!wwXj)bKdrgdz2qj#7 zz;G5DHzCqBsD0Ak$3x^c8 zYqO2nc@_zA{rHPul0JsXIDpC7&z&@EeVaYg6D@&QpkvD4D!0h~KwC`qPqv39{K4Rq z+}a`sVzJ3~czXMRn;bxD=Nlnye{h z_*I#W&BY(5Hw|AW-Nwgm(3cy%ZCngNIFW%&Dx+nV2KXcMZ-4vUdmmh1X&-*$vir-y w^&jv4a=Ph`tNWohZw-I`s9uOA9ll)AtKHeMnIHptKc`>6A`OTacI2nbImU zH@IoE3wl3gAyLxNxG=h)ci~2pNg!f0Sf7ar3&prFaf1m>Fj4CNo6dzvj1k!wIFsLe z=Y7xrobNnTRaR%^^UWgj^7b@Y2q+<#A zLr4OD(r@c5qw5fR0<0jUz@~w8kO;CsE+_-rKq;^T8`uK4&0YROSdVm5EN?YuWn~T0 zW-#Adlx~IPx@%z_AdfC97Nss)YAvmYO$A2F9dYp%#NEIG=6nCpEvw!D{z)~@4)>$L8mbMY$e!HOD)MQ$v4^h86eT>KC0+pZ&R0FP0 z-p@zC`o6cHN${OC&g@Ud&()sky4= zaMSSEf<8QvFBbPk5>lRdv-s2--iysQWcqBNRx|B?yf@h5-ggt$uDY9$1hsZ&Y93_` zXDAYVIZ#3GPkYGYDSDK4M7UI@#i^1+-r*80ZOh=@fxxQ%Z)F>!BjMBE2s|PVY(1SP zM>KbPYV-)^L)_S}iGCzLqOaV$^{eh?VVsHaSH%OJiJ7=ZGMdHR`QGg4)rP4Gcgx{6 znbbzJZf>p@$t7{0rNH*Ne;v=$s%$Dkqs?&*^+4C05SvDL zl3V!^$Irl4+^qrJF;lo(58y4x=XOzDO^s`$*5z{gsz>Xc)m5%a=df$E&RJ94;2S+$ zUr|}*s?|R@-lynppF@y3VRi2Nk8Le*fFr6Fc+cLCFY`_3kvgO{$wL~ALG4?8{2JfIssTL0#A09Og z__=s5(v#)elVT$2+EfGdl+xEhE1e%ubT#P4JWtO)^bl?a?ezUrDXBB+;%OCq)u?{~ DU5r^7 diff --git a/PMCProjekt/.vs/PMCProjekt/v17/DocumentLayout.json b/PMCProjekt/.vs/PMCProjekt/v17/DocumentLayout.json index 34527c2..77d7387 100644 --- a/PMCProjekt/.vs/PMCProjekt/v17/DocumentLayout.json +++ b/PMCProjekt/.vs/PMCProjekt/v17/DocumentLayout.json @@ -22,9 +22,9 @@ "Title": "Program.cs", "DocumentMoniker": "C:\\Users\\bib\\Documents\\PMC_Projekt\\PMCProjekt\\PMCProjekt\\Program.cs", "RelativeDocumentMoniker": "PMCProjekt\\Program.cs", - "ToolTip": "C:\\Users\\bib\\Documents\\PMC_Projekt\\PMCProjekt\\PMCProjekt\\Program.cs", - "RelativeToolTip": "PMCProjekt\\Program.cs", - "ViewState": "AQIAAHwAAAAAAAAAAAAQwHsAAAAlAAAA", + "ToolTip": "C:\\Users\\bib\\Documents\\PMC_Projekt\\PMCProjekt\\PMCProjekt\\Program.cs*", + "RelativeToolTip": "PMCProjekt\\Program.cs*", + "ViewState": "AQIAAHMAAAAAAAAAAAAkwHoAAAAAAAAA", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "WhenOpened": "2024-06-14T09:14:59.548Z", "EditorCaption": "" diff --git a/PMCProjekt/PMCProjekt/Program.cs b/PMCProjekt/PMCProjekt/Program.cs index 31d2522..ead2124 100644 --- a/PMCProjekt/PMCProjekt/Program.cs +++ b/PMCProjekt/PMCProjekt/Program.cs @@ -1,5 +1,4 @@ -using MySql.Data.MySqlClient; -using System; +using System; using System.IO; using System.Text.RegularExpressions; @@ -9,171 +8,82 @@ namespace PMCProjekt { static void Main(string[] args) { - MySqlConnection myconnection; - string meineVerbindungszeichenfolge; - // Kundennummer eingeben - // Console.Write("Bitte geben Sie die Kundennummer ein (z.B. K2-002): "); - //string kundennummer = Console.ReadLine(); - meineVerbindungszeichenfolge = "server=localhost;uid=root;pwd=root;database=import_export"; + Console.Write("Bitte geben Sie die Kundennummer ein (z.B. K2-002): "); + string kundennummer = Console.ReadLine(); - try + // Datei einlesen + string dateiPfad = "C:/Schule/PMC/import_yutani.csv"; + if (File.Exists(dateiPfad)) { - myconnection = new MySqlConnection(meineVerbindungszeichenfolge); - myconnection.Open(); - - // Datei einlesen - string dateiPfad = "C:/Schule/PMC/import_yutani.csv"; - if (File.Exists(dateiPfad)) + using (StreamReader sr = new StreamReader(dateiPfad)) { - using (StreamReader sr = new StreamReader(dateiPfad)) + string zeile; + while ((zeile = sr.ReadLine()) != null) { - string zeile; - while ((zeile = sr.ReadLine()) != null) + // Werte aus der Zeile extrahieren + string[] werte = zeile.Split(','); + if (werte.Length >= 4) { - // Werte aus der Zeile extrahieren - string[] werte = zeile.Split(','); - if (werte.Length >= 4) + string anrede = werte[0]; + string vorname = werte[1]; + string nachname = werte[2]; + string geburtsdatum = werte[3]; + string adresse = werte.Length > 4 ? werte[4] : null; + string plz = werte.Length > 5 ? werte[5] : null; + string stadt = werte.Length > 6 ? werte[6] : null; + string email = werte.Length > 7 ? werte[7] : null; + string telefonnummern = werte.Length > 8 ? werte[8] : null; + + // Daten validieren und ungültige Daten protokollieren + if (!DatenValidieren(anrede, vorname, nachname, geburtsdatum, adresse, plz, stadt, email, telefonnummern)) { - string anrede = werte[0]; - string vorname = werte[1]; - string nachname = werte[2]; - string geburtsdatum = werte[3]; - string adresse = werte.Length > 4 ? werte[4] : null; - string plz = werte.Length > 5 ? werte[5] : null; - string stadt = werte.Length > 6 ? werte[6] : null; - string email = werte.Length > 7 ? werte[7] : null; - string telefonnummern = werte.Length > 8 ? werte[8] : null; - - // Daten validieren - if (DatenValidieren(anrede, vorname, nachname, geburtsdatum, plz, email, telefonnummern)) - { - // Nutzer in die Tabelle 'user' einfügen - // string abfrage = "INSERT INTO user (clientId, genderId, firstname, lastname, birthdate, created) VALUES (@clientId, @genderId, @firstname, @lastname, @birthdate, NOW())"; - // using (MySqlCommand mycommand = new MySqlCommand(abfrage, myconnection)) - // { - // mycommand.Parameters.AddWithValue("@clientId", HoleKundenId(kundennummer)); - // mycommand.Parameters.AddWithValue("@genderId", HoleGeschlechtsId(anrede)); - // mycommand.Parameters.AddWithValue("@firstname", vorname); - // mycommand.Parameters.AddWithValue("@lastname", nachname); - // mycommand.Parameters.AddWithValue("@birthdate", DateTime.ParseExact(geburtsdatum, "dd.MM.yyyy", null)); - - // mycommand.ExecuteNonQuery(); - // } - - // // Adresse in die Tabelle 'address' einfügen - // if (adresse != null || plz != null || stadt != null) - // { - // string adressAbfrage = "INSERT INTO address (userId, street, postalcode, city) VALUES (LAST_INSERT_ID(), @street, @plz, @city)"; - // using (MySqlCommand adressBefehl = new MySqlCommand(adressAbfrage, myconnection)) - // { - // adressBefehl.Parameters.AddWithValue("@street", adresse); - // adressBefehl.Parameters.AddWithValue("@plz", plz); - // adressBefehl.Parameters.AddWithValue("@city", stadt); - - // adressBefehl.ExecuteNonQuery(); - // } - // } - - // // E-Mail in die Tabelle 'email' einfügen - // if (email != null) - // { - // string emailAbfrage = "INSERT INTO email (userId, email) VALUES (LAST_INSERT_ID(), @Email)"; - // using (MySqlCommand emailBefehl = new MySqlCommand(emailAbfrage, myconnection)) - // { - // emailBefehl.Parameters.AddWithValue("@Email", email); - // emailBefehl.ExecuteNonQuery(); - // } - // } - - // // Telefonnummern in die Tabelle 'phone' einfügen - // if (telefonnummern != null) - // { - // string[] telefonNummern = telefonnummern.Split(';'); - // foreach (var telefon in telefonNummern) - // { - // string[] telefonTeile = telefon.Split(' '); - // if (telefonTeile.Length == 2) - // { - // string telefonAbfrage = "INSERT INTO phone (userId, phoneprefix, phonenumber) VALUES (LAST_INSERT_ID(), @phoneprefix, @phonenumber)"; - // using (MySqlCommand telefonBefehl = new MySqlCommand(telefonAbfrage, myconnection)) - // { - // telefonBefehl.Parameters.AddWithValue("@phoneprefix", telefonTeile[0]); - // telefonBefehl.Parameters.AddWithValue("@phonenumber", telefonTeile[1]); - - // telefonBefehl.ExecuteNonQuery(); - // } - // } - // } - // } - } - else - { - // Ungültige Daten protokollieren - ProtokolliereUngueltigeDaten(werte); - } + ProtokolliereUngueltigeDaten(werte); + Console.WriteLine("Ungültige Daten: " + string.Join(",", werte)); } + else + { + Console.WriteLine("Gültige Daten: " + string.Join(",", werte)); + } + } + else + { + // Protokolliere Zeilen mit zu wenigen Datenfeldern + ProtokolliereUngueltigeDaten(werte); + Console.WriteLine("Ungültige Daten (zu wenige Felder): " + string.Join(",", werte)); } } } - else - { - Console.WriteLine("Datei nicht gefunden."); - } - - myconnection.Close(); } - catch (MySqlException ex) + else { - Console.WriteLine("Fehler: " + ex.Message); + Console.WriteLine("Datei nicht gefunden."); } } - // Kunden-ID basierend auf der Kundennummer ermitteln - static int HoleKundenId(string kundennummer) - { - // Kunden-ID zurückgeben basierend auf der Kundennummer - return 1; // Logik hier ersetzen - } - - // Geschlechts-ID basierend auf der Anrede ermitteln - static int HoleGeschlechtsId(string anrede) - { - if (anrede.ToLower() == "herr") return 1; - if (anrede.ToLower() == "frau") return 2; - if (anrede.ToLower() == "divers") return 3; - return 0; // Unbekannt oder nicht angegeben - } - - // Daten validieren - static bool DatenValidieren(string anrede, string vorname, string nachname, string geburtsdatum, string plz, string email, string telefonnummern) + static bool DatenValidieren(string anrede, string vorname, string nachname, string geburtsdatum, string adresse, string plz, string stadt, string email, string telefonnummern) { bool istGueltig = true; // Geburtsdatum validieren - DateTime parsedDate; - if (!DateTime.TryParseExact(geburtsdatum, "dd.MM.yyyy", null, System.Globalization.DateTimeStyles.None, out parsedDate)) + if (!PrüfGeburtstag(geburtsdatum)) { + Console.WriteLine($"Ungültiges Geburtsdatum: {geburtsdatum}"); istGueltig = false; } // E-Mail-Adresse validieren - if (!string.IsNullOrEmpty(email)) + if (!string.IsNullOrEmpty(email) && !PrüfEmail(email)) { - Regex emailRegex = new Regex(@"^[^@\s]+@[^@\s]+\.[^@\s]+$"); - if (!emailRegex.IsMatch(email)) - { - istGueltig = false; - } + Console.WriteLine($"Ungültige E-Mail-Adresse: {email}"); + istGueltig = false; } // Postleitzahl validieren - if (!string.IsNullOrEmpty(plz)) + if (!string.IsNullOrEmpty(plz) && !PrüfPLZ(plz)) { - if (plz.Length != 5 || !int.TryParse(plz, out _)) - { - istGueltig = false; - } + Console.WriteLine($"Ungültige Postleitzahl: {plz}"); + istGueltig = false; } // Telefonnummern validieren @@ -182,12 +92,9 @@ namespace PMCProjekt string[] telefonNummern = telefonnummern.Split(';'); foreach (var telefon in telefonNummern) { - string[] telefonTeile = telefon.Split(' '); - if (telefonTeile.Length != 2 || - telefonTeile[0].Length < 3 || telefonTeile[0].Length > 5 || - telefonTeile[1].Length < 4 || telefonTeile[1].Length > 10 || - !int.TryParse(telefonTeile[0], out _) || !int.TryParse(telefonTeile[1], out _)) + if (!PrüfTelefon(telefon)) { + Console.WriteLine($"Ungültige Telefonnummer: {telefon}"); istGueltig = false; } } @@ -196,10 +103,33 @@ namespace PMCProjekt return istGueltig; } - // Ungültige Daten protokollieren + static bool PrüfGeburtstag(string geburtsdatum) + { + string pattern = @"^\d{4}\-\d{2}\-\d{2}$"; + return Regex.IsMatch(geburtsdatum, pattern); + } + + static bool PrüfEmail(string email) + { + string pattern = @"^[a-z]+\.[a-z]+@[a-z]+\.[a-z]{2,}$"; + return Regex.IsMatch(email, pattern); + } + + static bool PrüfPLZ(string plz) + { + string pattern = @"^[0-9]{5}$"; + return Regex.IsMatch(plz, pattern); + } + + static bool PrüfTelefon(string telefon) + { + string pattern = @"^[0-9]{3,5}\s?[0-9]{4,10}$"; + return Regex.IsMatch(telefon, pattern); + } + static void ProtokolliereUngueltigeDaten(string[] daten) { - string protokollPfad = "C:/Schule/PMC/ungueltige_Daten.txt"; + string protokollPfad = "C:/Schule/PMC/ungueltige_Daten.csv"; using (StreamWriter sw = new StreamWriter(protokollPfad, true)) { sw.WriteLine(string.Join(",", daten)); diff --git a/PMCProjekt/PMCProjekt/obj/Debug/net8.0/PMCProjekt.AssemblyInfo.cs b/PMCProjekt/PMCProjekt/obj/Debug/net8.0/PMCProjekt.AssemblyInfo.cs index d159a58..1c627fa 100644 --- a/PMCProjekt/PMCProjekt/obj/Debug/net8.0/PMCProjekt.AssemblyInfo.cs +++ b/PMCProjekt/PMCProjekt/obj/Debug/net8.0/PMCProjekt.AssemblyInfo.cs @@ -14,7 +14,7 @@ using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("PMCProjekt")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+ccf519442eacb4415c21da9b808d1323f8d13b0b")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+3ecbf97c766628394acad938d340da68a9d05e5c")] [assembly: System.Reflection.AssemblyProductAttribute("PMCProjekt")] [assembly: System.Reflection.AssemblyTitleAttribute("PMCProjekt")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] diff --git a/PMCProjekt/PMCProjekt/obj/Debug/net8.0/PMCProjekt.AssemblyInfoInputs.cache b/PMCProjekt/PMCProjekt/obj/Debug/net8.0/PMCProjekt.AssemblyInfoInputs.cache index 92d12a6..3dc8954 100644 --- a/PMCProjekt/PMCProjekt/obj/Debug/net8.0/PMCProjekt.AssemblyInfoInputs.cache +++ b/PMCProjekt/PMCProjekt/obj/Debug/net8.0/PMCProjekt.AssemblyInfoInputs.cache @@ -1 +1 @@ -2b86785557cecb37507fb5607216d2388b73f1747577587e3fc6b51529995d44 +d4ca53237659e1a7007941b655e24571191b87dfdcf8a3a5ea0ebb2f5de16263