fast ferig
This commit is contained in:
parent
3ecbf97c76
commit
2150bad16d
Binary file not shown.
@ -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": ""
|
||||
|
@ -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));
|
||||
|
@ -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")]
|
||||
|
@ -1 +1 @@
|
||||
2b86785557cecb37507fb5607216d2388b73f1747577587e3fc6b51529995d44
|
||||
d4ca53237659e1a7007941b655e24571191b87dfdcf8a3a5ea0ebb2f5de16263
|
||||
|
Loading…
Reference in New Issue
Block a user