fast ferig

This commit is contained in:
NBMANTZELOS\bib 2024-06-28 13:52:35 +02:00
parent 3ecbf97c76
commit 2150bad16d
5 changed files with 79 additions and 149 deletions

Binary file not shown.

View File

@ -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": ""

View File

@ -1,5 +1,4 @@
using MySql.Data.MySqlClient;
using System;
using System;
using System.IO;
using System.Text.RegularExpressions;
@ -9,18 +8,9 @@ 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";
try
{
myconnection = new MySqlConnection(meineVerbindungszeichenfolge);
myconnection.Open();
Console.Write("Bitte geben Sie die Kundennummer ein (z.B. K2-002): ");
string kundennummer = Console.ReadLine();
// Datei einlesen
string dateiPfad = "C:/Schule/PMC/import_yutani.csv";
@ -45,74 +35,23 @@ namespace PMCProjekt
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))
// Daten validieren und ungültige Daten protokollieren
if (!DatenValidieren(anrede, vorname, nachname, geburtsdatum, adresse, plz, stadt, 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();
// }
// }
// }
// }
ProtokolliereUngueltigeDaten(werte);
Console.WriteLine("Ungültige Daten: " + string.Join(",", werte));
}
else
{
// Ungültige Daten protokollieren
ProtokolliereUngueltigeDaten(werte);
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));
}
}
}
}
@ -120,61 +59,32 @@ namespace PMCProjekt
{
Console.WriteLine("Datei nicht gefunden.");
}
myconnection.Close();
}
catch (MySqlException ex)
{
Console.WriteLine("Fehler: " + ex.Message);
}
}
// 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))
{
Regex emailRegex = new Regex(@"^[^@\s]+@[^@\s]+\.[^@\s]+$");
if (!emailRegex.IsMatch(email))
if (!string.IsNullOrEmpty(email) && !PrüfEmail(email))
{
Console.WriteLine($"Ungültige E-Mail-Adresse: {email}");
istGueltig = false;
}
}
// Postleitzahl validieren
if (!string.IsNullOrEmpty(plz))
{
if (plz.Length != 5 || !int.TryParse(plz, out _))
if (!string.IsNullOrEmpty(plz) && !PrüfPLZ(plz))
{
Console.WriteLine($"Ungültige Postleitzahl: {plz}");
istGueltig = false;
}
}
// Telefonnummern validieren
if (!string.IsNullOrEmpty(telefonnummern))
@ -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));

View File

@ -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")]

View File

@ -1 +1 @@
2b86785557cecb37507fb5607216d2388b73f1747577587e3fc6b51529995d44
d4ca53237659e1a7007941b655e24571191b87dfdcf8a3a5ea0ebb2f5de16263