From 26c62d000d0e4ffd1f3c6baf8a522f5b891e50dc Mon Sep 17 00:00:00 2001 From: "NBJC\\bib" Date: Fri, 23 Aug 2024 10:42:39 +0200 Subject: [PATCH] =?UTF-8?q?Komplette=20=C3=9Cberarbeitung=20-=20Import=20t?= =?UTF-8?q?echnisch=20richtig=20/=20File=20wird=20noch=20nicht=20gefunden?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DesignTimeBuild/.dtbcache.v2 | Bin 91623 -> 91623 bytes .../Projekt_Calcan_Conze/v17/.futdcache.v2 | Bin 164 -> 164 bytes .../.vs/Projekt_Calcan_Conze/v17/.suo | Bin 31232 -> 45056 bytes .../v17/DocumentLayout.json | 29 +- .../Projekt_Calcan_Conze/Constants.cs | 12 + .../DTOs/CustomerAttributeDto.cs | 11 + .../Projekt_Calcan_Conze/DTOs/CustomerDto.cs | 13 + .../Projekt_Calcan_Conze/Models/Address.cs | 17 + .../Projekt_Calcan_Conze/Models/Customer.cs | 65 +++ .../Models/PhoneNumber.cs | 14 + .../Projekt_Calcan_Conze/Programm.cs | 36 ++ .../Projekt_Calcan_Conze/export.cs | 113 ----- .../Projekt_Calcan_Conze/import.cs | 416 ++++++++---------- .../Projekt_Calcan_Conze.AssemblyInfo.cs | 2 +- ...jekt_Calcan_Conze.AssemblyInfoInputs.cache | 2 +- .../net8.0/Projekt_Calcan_Conze.assets.cache | Bin 19048 -> 19048 bytes ...jekt_Calcan_Conze.csproj.nuget.dgspec.json | 2 +- .../Projekt_Calcan_Conze.csproj.nuget.g.props | 2 +- .../obj/project.assets.json | 2 +- .../obj/project.nuget.cache | 2 +- 20 files changed, 396 insertions(+), 342 deletions(-) create mode 100644 Projekt_Calcan_Conze/Projekt_Calcan_Conze/Constants.cs create mode 100644 Projekt_Calcan_Conze/Projekt_Calcan_Conze/DTOs/CustomerAttributeDto.cs create mode 100644 Projekt_Calcan_Conze/Projekt_Calcan_Conze/DTOs/CustomerDto.cs create mode 100644 Projekt_Calcan_Conze/Projekt_Calcan_Conze/Models/Address.cs create mode 100644 Projekt_Calcan_Conze/Projekt_Calcan_Conze/Models/Customer.cs create mode 100644 Projekt_Calcan_Conze/Projekt_Calcan_Conze/Models/PhoneNumber.cs create mode 100644 Projekt_Calcan_Conze/Projekt_Calcan_Conze/Programm.cs delete mode 100644 Projekt_Calcan_Conze/Projekt_Calcan_Conze/export.cs diff --git a/Projekt_Calcan_Conze/.vs/Projekt_Calcan_Conze/DesignTimeBuild/.dtbcache.v2 b/Projekt_Calcan_Conze/.vs/Projekt_Calcan_Conze/DesignTimeBuild/.dtbcache.v2 index feac31fa01ede2b8b9a89190ad22c470308cf78e..27f53494e1bc96099229d179728c51ada3fb6ad1 100644 GIT binary patch literal 91623 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 diff --git a/Projekt_Calcan_Conze/.vs/Projekt_Calcan_Conze/v17/.futdcache.v2 b/Projekt_Calcan_Conze/.vs/Projekt_Calcan_Conze/v17/.futdcache.v2 index dafa8ef0f053630cfdfe7473ebd83c31dbe2c736..6d9d00153ceded8d00268d6e410116bf95c9f0a5 100644 GIT binary patch delta 27 jcmZ3&xP)=S1d(#(BffXIA2ywtbB810{g;nHJ$E<&u5Jys delta 27 dcmZ3&xP)=S1QD%QO?eDZknsM?$Dp1&8~}Pt33&hj diff --git a/Projekt_Calcan_Conze/.vs/Projekt_Calcan_Conze/v17/.suo b/Projekt_Calcan_Conze/.vs/Projekt_Calcan_Conze/v17/.suo index e835f058c1bf8e389eea503fec2634f3c66283ae..d1add5da8100fbfd8f6727ac8d104830dc170820 100644 GIT binary patch literal 45056 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 delta 3932 zcmcf^ZERcB^m{I{&$*intS~H$NjT*Q-)?Sh61D{1l=i$CJ;$@9Q|9(7 zjz3=cl(!;2&)aas)bj7=c)#fn4hIDt!M0p&lW>lmD%|Y2AkF-8XP$ zo6f=lUbfZnN)qsV)WRF{lh3n;Df78!@4HFRu^$q&p;%DCju~(I2ELN2b)jok@n*_H*YU2NH!Z-Y!WCoTLaxke9^lY z>foDQc7;r1M^F%25XcKiwSp3!x9!i`YT#p=QwktH+vJmI4|>8a56OnmHZ#4)?W??hVW2|K#sN8QH@UT<<-_t08?i%7)*d z6i@>jiLhy35gnvvBJy5DD85LNyHej&b^Sf zhNTkR6ms(}Sho(FIpws*qAzd{q#K5foPtEqR*)a#ng;Y`H2C%D8q@PE$o%Xv1}o73 ze3ae|?kE3R$=EDQu{4`vPcV%^P7Oe8Ibb2KXdGR9WnlDD{Rc4Obems51Z6`?-Df}@ zIJzT}OgxcPr{GynhwSz3@9a7?pia(e8j7$F0`Xk74*jU46H;}k5WI^~ZW5wH&W}p2 zJDR7ck4RJ$gak(NR|z)e2aUX=2oI@+yiG|p7T8!Q*t8v&H$EJcU|~`Ju#w{i>Q~tQ zt|B`AU)tWR+a3?ncn$c0-+>bI8=uBeuNsLptFu|e)rKB1~safp7ngx~G zi5N207B;o>>Ye#aL?T@YdsNKf;td2Gu$lfqcH@Lf=+?z+b7&Z{^?XF4vLQ|ybzg*y zllMWu=jFqw-3gdpqWt@blU_*?ka4#x;7*8tP&#WOUc8!87wJ-GVSjy zqT>!&SHdzGg1RknoVP=I^en8*DWJ?53kiQp+e@fef795e1aWVgEinz;!}dxQcMB45<^;vzEGfM8?_C|d z#C0rm4nJJZ`tj*zE{wvy$dR|gpBv!0ftn!ojud9?UR8^^4|R^a#(f^I%j=7EyLvos zuj`<%r>D#3^{5{2xXujn6IUnW>h$q=VtNTz5Q)~8U?ziHw5|Nuhj|Bo`fYGOeh_l4 z&W2O7iOF;pyAfTrny-62?(wLuc=rjP z%d4s}S1i`!b9v%k@1bs0JrN(*IQs`G><@4`+QCV6$6-iy(W(kH%n|f45!i-G;w-ey zmbtu8lCjY62Pqv$II~mzDJ#^Uo6x#3FKT_et&HP8s%Hw9V{*^Eh;yn&6x$S^G(get zAB@(B&d1=2*4CImMqRrYR2lS!4f~7=;Ub8G2U0CHuNRt-L8hW}AIHXa0=te@C&VVK zyd2czyQ{A*2RJuiXa(SOTV_?69p< parts) + { + this.Parts = parts; + } + + public List Parts { get; } +} \ No newline at end of file diff --git a/Projekt_Calcan_Conze/Projekt_Calcan_Conze/DTOs/CustomerDto.cs b/Projekt_Calcan_Conze/Projekt_Calcan_Conze/DTOs/CustomerDto.cs new file mode 100644 index 0000000..dfa412c --- /dev/null +++ b/Projekt_Calcan_Conze/Projekt_Calcan_Conze/DTOs/CustomerDto.cs @@ -0,0 +1,13 @@ +using Projekt_Calcan_Conze.DTOs; + +namespace Projekt_Calcan_Conze.DTOs; + +internal class CustomerDto +{ + public CustomerDto(List attributes) + { + this.Attributes = attributes; + } + + public List Attributes { get; } +} \ No newline at end of file diff --git a/Projekt_Calcan_Conze/Projekt_Calcan_Conze/Models/Address.cs b/Projekt_Calcan_Conze/Projekt_Calcan_Conze/Models/Address.cs new file mode 100644 index 0000000..e24a85e --- /dev/null +++ b/Projekt_Calcan_Conze/Projekt_Calcan_Conze/Models/Address.cs @@ -0,0 +1,17 @@ +namespace Projekt_Calcan_Conze.Models; + +internal class Address +{ + public Address(string streetAndHouseNumber, string postalCode, string city) + { + this.StreetAndHouseNumber = streetAndHouseNumber; + this.PostalCode = postalCode; + this.City = city; + } + + public string StreetAndHouseNumber { get; } + + public string PostalCode { get; } + + public string City { get; } +} \ No newline at end of file diff --git a/Projekt_Calcan_Conze/Projekt_Calcan_Conze/Models/Customer.cs b/Projekt_Calcan_Conze/Projekt_Calcan_Conze/Models/Customer.cs new file mode 100644 index 0000000..7f597c7 --- /dev/null +++ b/Projekt_Calcan_Conze/Projekt_Calcan_Conze/Models/Customer.cs @@ -0,0 +1,65 @@ +using Projekt_Calcan_Conze.Models; +using System.Text; + +namespace Projekt_Calcan_Conze.Models; + +internal class Customer +{ + public Customer( + string title, + string firstName, + string lastName, + DateOnly dateOfBirth, + string? email, + Address? address, + List phoneNumbers) + { + this.Title = title; + this.FirstName = firstName; + this.LastName = lastName; + this.DateOfBirth = dateOfBirth; + this.Email = email; + this.Address = address; + this.PhoneNumbers = phoneNumbers; + } + + public string Title { get; } + + public string FirstName { get; } + + public string LastName { get; } + + public DateOnly DateOfBirth { get; } + + public string? Email { get; } + + public Address? Address { get; } + + public List PhoneNumbers { get; } + + public override string ToString() + { + StringBuilder builder = new(); + + builder.Append($"{this.Title} {this.FirstName} {this.LastName}"); + builder.Append($"{Constants.Separator} {this.DateOfBirth.ToString(Constants.DateOfBirthFormat)}"); + + if (this.Email is not null) + { + builder.Append($"{Constants.Separator} {this.Email}"); + } + + if (this.Address is not null) + { + builder.Append($"{Constants.Separator} {this.Address.StreetAndHouseNumber}"); + builder.Append($"{Constants.Separator} {this.Address.PostalCode} {this.Address.City}"); + } + + foreach (PhoneNumber phoneNumber in this.PhoneNumbers) + { + builder.Append($"{Constants.Separator} {phoneNumber.AreaCode} {phoneNumber.Number}"); + } + + return builder.ToString(); + } +} \ No newline at end of file diff --git a/Projekt_Calcan_Conze/Projekt_Calcan_Conze/Models/PhoneNumber.cs b/Projekt_Calcan_Conze/Projekt_Calcan_Conze/Models/PhoneNumber.cs new file mode 100644 index 0000000..54eafbf --- /dev/null +++ b/Projekt_Calcan_Conze/Projekt_Calcan_Conze/Models/PhoneNumber.cs @@ -0,0 +1,14 @@ +namespace Projekt_Calcan_Conze.Models; + +internal class PhoneNumber +{ + public PhoneNumber(string areaCode, string number) + { + this.AreaCode = areaCode; + this.Number = number; + } + + public string AreaCode { get; } + + public string Number { get; } +} \ No newline at end of file diff --git a/Projekt_Calcan_Conze/Projekt_Calcan_Conze/Programm.cs b/Projekt_Calcan_Conze/Projekt_Calcan_Conze/Programm.cs new file mode 100644 index 0000000..4c7ddd1 --- /dev/null +++ b/Projekt_Calcan_Conze/Projekt_Calcan_Conze/Programm.cs @@ -0,0 +1,36 @@ +using Projekt_Calcan_Conze; +using Projekt_Calcan_Conze.Models; + +string? filePath = null; + +while (filePath is null) +{ + Console.WriteLine("Bitte gib einen Dateipfad an:"); + filePath = Console.ReadLine(); +} + +string? customerId = null; + +while (customerId is null) +{ + Console.WriteLine("Bitte gib eine Kundennummer an:"); + customerId = Console.ReadLine(); +} + +var (customers, protocol) = Import.For(filePath); + +Console.WriteLine(); +Console.WriteLine("Importierte Kunden:"); + +foreach (Customer customer in customers) +{ + Console.WriteLine(customer.ToString()); +} + +Console.WriteLine(); +Console.WriteLine("Ungültige nicht importierte Zeilen/Kunden:"); + +foreach (string protocolLine in protocol) +{ + Console.WriteLine(protocolLine); +} diff --git a/Projekt_Calcan_Conze/Projekt_Calcan_Conze/export.cs b/Projekt_Calcan_Conze/Projekt_Calcan_Conze/export.cs deleted file mode 100644 index d4a616a..0000000 --- a/Projekt_Calcan_Conze/Projekt_Calcan_Conze/export.cs +++ /dev/null @@ -1,113 +0,0 @@ -// 2. Export -// -// • Ein Sachbearbeiter ruft eine Konsolen-App auf, in welcher er die Kundennummer sowie den Zeitraum für die Abrechnung angibt -// • Wird eine Aktion abgerechnet, darf diese zukünftig nicht nochmal berechnet werden (z.B. bei Überschneidung der Zeiträume) -// • Die Ausgabe der Daten erfolgt als CSV-Datei. Der Dateiname folgt diesem Schema: Abrechnungsdatum_Kundennummer_vonDatum_bisDatum.csv -// • Das Datum ist immer im folgenden Format anzugeben: yyyy-mm-dd -// • Ein Abrechnungslauf muss folgende Daten umfassen: -// ○ Zeitraum (von / bis Datum) der Abrechnung -// ○ Name und Nummer des Kunden -// ○ Gesamtsumme der Abrechnung -// ○ Übersicht der einzelnen Posten wie folgt: -// Bereich | Grundbetrag | Anzahl | Betrag -// Newsletter wöchentlich | 0.001 | 24 | 0.024 -// Tarif Orange M 12 Monate | 7.00 | 0 | 0.000 -// Tarif Orange S 12 Monate | 5.00 | 1 | 5.000 -// Tarif Orange XL 12 Monate | 12.00 | 2 | 24.000 -// Verkaufsgespräch | 0.030 | 8 | 0.240 -// - -using System; -using System.Collections.Generic; -using System.IO; -using MySql.Data.MySqlClient; - -class Export -{ - static void Main(string[] args) - { - string customerNumber = args[0]; - string startDatum = args[1]; - string endDatum = args[2]; - - ExportData(customerNumber, startDatum, endDatum); - } - - static void ExportData(string kundennummer, string startDatum, string endDatum) - { - string myConnectionString = "server=localhost;uid=root;pwd=root;database=vr_contact"; - using (MySqlConnection myConnection = new MySqlConnection(myConnectionString)) - { - try - { - myConnection.Open(); - - // Kundendaten abrufen - string clientQuery = "SELECT name, id FROM customers WHERE id = @clientId"; - MySqlCommand clientCmd = new MySqlCommand(clientQuery, myConnection); - clientCmd.Parameters.AddWithValue("@clientId", kundennummer); - - using (MySqlDataReader clientReader = clientCmd.ExecuteReader()) - { - if (clientReader.Read()) - { - string clientName = clientReader.GetString("name"); - int clientId = clientReader.GetInt32("id"); - clientReader.Close(); - - // Abrechnungsdaten abrufen - string invoiceQuery = @" - SELECT area, base_amount, quantity, amount - FROM invoices - WHERE client_id = @clientId - AND invoice_date BETWEEN @startDatum AND @endDatum"; - - MySqlCommand invoiceCmd = new MySqlCommand(invoiceQuery, myConnection); - invoiceCmd.Parameters.AddWithValue("@clientId", clientId); - invoiceCmd.Parameters.AddWithValue("@startDatum", startDatum); - invoiceCmd.Parameters.AddWithValue("@endDatum", endDatum); - - using (MySqlDataReader invoiceReader = invoiceCmd.ExecuteReader()) - { - List invoiceLines = new List(); - decimal totalAmount = 0; - - while (invoiceReader.Read()) - { - string area = invoiceReader.GetString("area"); - decimal baseAmount = invoiceReader.GetDecimal("base_amount"); - int quantity = invoiceReader.GetInt32("quantity"); - decimal amount = invoiceReader.GetDecimal("amount"); - totalAmount += amount; - - invoiceLines.Add($"{area};{baseAmount};{quantity};{amount}"); - } - invoiceReader.Close(); - - // CSV-Datei schreiben - string filename = $"{DateTime.Now:yyyy-MM-dd}_{kundennummer}_{startDatum}_{endDatum}.csv"; - using (StreamWriter sw = new StreamWriter(filename)) - { - sw.WriteLine($"Zeitraum: {startDatum} bis {endDatum}"); - sw.WriteLine($"Name und Nummer des Kunden: {clientName}, {clientId}"); - sw.WriteLine($"Gesamtsumme der Abrechnung: {totalAmount}"); - sw.WriteLine("Bereich;Grundbetrag;Anzahl;Betrag"); - - foreach (string line in invoiceLines) - { - sw.WriteLine(line); - } - } - } - } - } - myConnection.Close(); - } - catch (MySqlException ex) - { - Console.WriteLine($"Database error: {ex.Message}"); - } - } - } -} - diff --git a/Projekt_Calcan_Conze/Projekt_Calcan_Conze/import.cs b/Projekt_Calcan_Conze/Projekt_Calcan_Conze/import.cs index 6c3e31c..14b0b6b 100644 --- a/Projekt_Calcan_Conze/Projekt_Calcan_Conze/import.cs +++ b/Projekt_Calcan_Conze/Projekt_Calcan_Conze/import.cs @@ -1,243 +1,217 @@ -//Aufgabenstellung -// -//1.Import -// -//Als Teil des Entwicklungsteams sollen Sie einen Import für neue Nutzer der jeweiligen Kunden entwickeln. -//Die Kunden schicken zu diesem Zweck CSV-Dateien mit den Daten von neuen Nutzern. -//Diese Daten müssen in die bestehenden Datentabellen eingespielt werden. -//Dafür sind folgende Anforderungen formuliert: -// -// • Ein Sachbearbeiter ruft eine Konsolen-App auf, in welcher er die Datei und die -// Kundennummer des Kunden als Parameter übergibt: Die Beispieldatei hat den Namen "import_yutani.csv" und -// gehört zum Kunden mit der Nummer "K2-002" -// -// • Die Datei hat den Aufbau: -// - Ein Nutzer mit Anrede, Vorname, Nachname und Geburtsdatum -// - Ggf. Adresse: Straße mit Hausnummer, PLZ, Stadt -// - Ggf. E-Mail -// - Ggf. eine oder mehrere Telefonnummern: Vorwahl ohne führende 0 und Nummer -// -// • Ein Nutzer darf für einen Kunden nicht mehrmals importiert werden. -// -// • Die Daten sollen wie folgt validiert werden: -// ○ Geburtsdatum: TT.MM.JJJJ -// ○ Valide E-Mail-Adresse -// ○ PLZ: exakt 5 Nummern -// ○ Telefonnummer 3 bis 5 Nummern für die Vorwahl und 4 bis 10 Nummern für die Hauptnummer. Keine Sonderzeichen -// -// • Nicht valide Datensätze von Nutzern sollen in einem Protokoll erfasst werden, ebenso bereits vorhandene Nutzer. -// Der komplette Datensatz eines Nutzers darf dann nicht importiert werden +using System.Net.Mail; -/* - * Das ist der Beispielcode für die Verbindung zum Datenbankserver - * -using MySql.Data; -using MySql.Data.MySqlClient; -using MySqlX.XDevAPI; -using System.Data.Common; -using System.Reflection.PortableExecutable; -using System.Xml; +using Projekt_Calcan_Conze.DTOs; +using Projekt_Calcan_Conze.Models; +using Microsoft.VisualBasic; +namespace Projekt_Calcan_Conze; - MySql.Data.MySqlClient.MySqlConnection myConnection; - string myConnectionString; - //set the correct values for your server, user, password and database name - myConnectionString = "server=localhost;uid=root;pwd=root;database=vr_contact"; - - try - { - myConnection = new MySql.Data.MySqlClient.MySqlConnection(myConnectionString); - //open a connection - myConnection.Open(); - - // create a MySQL command and set the SQL statement with parameters - MySqlCommand myCommand = new MySqlCommand(); - myCommand.Connection = myConnection; - myCommand.CommandText = @"SELECT * FROM workshop WHERE maxParticipants = @code;"; - myCommand.Parameters.AddWithValue("@code", "12"); - - // execute the command and read the results - using MySqlDataReader myReader = myCommand.ExecuteReader(); - - while (myReader.Read()) - { - int id = myReader.GetInt32("maxParticipants"); - string name = myReader.GetString("title"); - Console.WriteLine(id + " " + name); -} - - myConnection.Close(); - } - catch (MySql.Data.MySqlClient.MySqlException ex) +internal static class Import { - -} - * - */ - -using System; -using System.Collections.Generic; -using System.IO; -using System.Text.RegularExpressions; -using MySql.Data.MySqlClient; - -class Import -{ - static void Main(string[] args) + public static (List Customers, List Protocol) For(string filePath) { - string filePath = args[0]; - string customerNumber = args[1]; - - ImportData(filePath, customerNumber); + var (customerDtos, protocol) = Import.ReadCustomerDtos(filePath); + var customers = Import.ParseCustomers(customerDtos, protocol); + return (customers, protocol); } - static void ImportData(string filePath, string customerNumber) + private static (List CustomerDtos, List Protocol) ReadCustomerDtos( + string filePath) { - List errorLog = new List(); + List protocol = []; + List customerDtos = []; + List lines; - using (StreamReader sr = new StreamReader(filePath)) + try { - string line; - while ((line = sr.ReadLine()) != null) + lines = + File.ReadAllLines(filePath) + .Where(line => !string.IsNullOrWhiteSpace(line)) // remove empty lines + .ToList(); + } + catch (Exception) + { + Console.WriteLine("The file does not exist or is currently used by another program."); + return (customerDtos, protocol); + } + + CustomerDto? currentCustomer = null; + + foreach (string line in lines) + { + var lineParts = + line.Split(Constants.Separator) + .Select(linePart => linePart.Trim()) + .Where(linePart => !string.IsNullOrWhiteSpace(linePart)) // remove empty parts + .ToList(); // remove whitespace + + string title = lineParts[0]; + + if (title is Constants.FemaleAttributeIdentifier or Constants.MaleAttributeIdentifier) { - string[] parts = line.Split(';'); - User user = new User + if (currentCustomer is not null) { - Gender = parts[0], - Firstname = parts[1], - Lastname = parts[2], - Birthdate = parts[3], - Address = new Address + customerDtos.Add(currentCustomer); + } + + currentCustomer = new CustomerDto([new CustomerAttributeDto(lineParts)]); + } + else if (currentCustomer is not null) + { + currentCustomer.Attributes.Add(new CustomerAttributeDto(lineParts)); + } + else + { + protocol.Add(line); + } + } + + if (currentCustomer is not null) + { + customerDtos.Add(currentCustomer); + } + + return (customerDtos, protocol); + } + + private static List ParseCustomers(List customerDtos, + List protocol) + { + List customers = []; + + foreach (CustomerDto customerDto in customerDtos) + { + Customer? customer = Import.ParseCustomer(customerDto); + + if (customer is not null) + { + customers.Add(customer); + } + else + { + Import.LogInvalidCustomer(protocol, customerDto); + } + } + + return customers; + } + + private static Customer? ParseCustomer(CustomerDto customer) + { + CustomerAttributeDto firstAttribute = customer.Attributes[0]; + + if (firstAttribute.Parts.Count != 4) + { + return null; + } + + string title = firstAttribute.Parts[0]; + string fistName = firstAttribute.Parts[1]; + string lastName = firstAttribute.Parts[2]; + + DateOnly? dateOfBirth = + DateOnly.TryParseExact(firstAttribute.Parts[3], Constants.DateOfBirthFormat, + out DateOnly date) + ? date + : null; + + if (dateOfBirth is null) + { + return null; + } + + string? email = null; + Address? address = null; + List phoneNumbers = []; + + foreach (CustomerAttributeDto attribute in customer.Attributes.Skip(1)) + { + var attributeParts = attribute.Parts; + string identifier = attributeParts[0]; + + switch (identifier) + { + case Constants.AddressAttributeIdentifier: + if (attributeParts.Count == 4) { - Street = parts[4], - PostalCode = parts[5], - City = parts[6] - }, - Email = parts[7], - Phones = new List - { - new Phone { Prefix = parts[8], Number = parts[9] } + string postalCode = attributeParts[2]; + + if (postalCode.Length == 5) + { + address = + new Address( + streetAndHouseNumber: attributeParts[1], + postalCode: postalCode, + city: attributeParts[3]); + } + else + { + return null; + } } - }; - if (ValidateUser(user, out string error)) - { - InsertUser(user, customerNumber, errorLog); - } - else - { - errorLog.Add(error); - } + break; + + case Constants.EmailAttributeIdentifier: + if (attributeParts.Count == 2) + { + try + { + email = attributeParts[1]; + + _ = new MailAddress( + email); // validate the format of the email address + } + catch (Exception) + { + return null; + } + } + else + { + return null; + } + + break; + + case Constants.PhoneNumberAttributeIdentifier: + if (attributeParts.Count == 3) + { + string areaCode = attributeParts[1]; + string number = attributeParts[2]; + + if (areaCode.Length is >= 3 and <= 5 + && number.Length is >= 4 and <= 10) + { + phoneNumbers.Add(new PhoneNumber(areaCode, number)); + } + } + else + { + return null; + } + + break; + + default: return null; } } - File.WriteAllLines("error_log.txt", errorLog); + return new Customer( + title: title, + firstName: fistName, + lastName: lastName, + dateOfBirth: dateOfBirth.Value, + email: email, + address: address, + phoneNumbers: phoneNumbers); } - static bool ValidateUser(User user, out string error) + private static void LogInvalidCustomer(List protocol, CustomerDto customerDto) { - error = ""; - - if (!Regex.IsMatch(user.Birthdate, @"^\d{2}\.\d{2}\.\d{4}$")) - { - error = "Invalid birthdate format."; - return false; - } - - if (!string.IsNullOrEmpty(user.Email) && !Regex.IsMatch(user.Email, @"^[^@\s]+@[^@\s]+\.[^@\s]+$")) - { - error = "Invalid email format."; - return false; - } - - if (!Regex.IsMatch(user.Address.PostalCode, @"^\d{5}$")) - { - error = "Invalid postal code format."; - return false; - } - - foreach (var phone in user.Phones) - { - if (!Regex.IsMatch(phone.Prefix, @"^\d{3,5}$") || !Regex.IsMatch(phone.Number, @"^\d{4,10}$")) - { - error = "Invalid phone number format."; - return false; - } - } - - return true; + protocol.AddRange( + customerDto + .Attributes + .Select(attribute => string.Join(Constants.Separator, attribute.Parts))); } - - static void InsertUser(User user, string customerNumber, List errorLog) - { - string myConnectionString = "server=localhost;uid=root;pwd=root;database=vr_contact"; - using (MySqlConnection myConnection = new MySqlConnection(myConnectionString)) - { - try - { - myConnection.Open(); - - // Check if user already exists for the customer - string checkQuery = "SELECT COUNT(*) FROM users WHERE firstname = @firstname AND lastname = @lastname AND customer_id = @customer_id"; - MySqlCommand checkCmd = new MySqlCommand(checkQuery, myConnection); - checkCmd.Parameters.AddWithValue("@firstname", user.Firstname); - checkCmd.Parameters.AddWithValue("@lastname", user.Lastname); - checkCmd.Parameters.AddWithValue("@customer_id", customerNumber); - - int userCount = Convert.ToInt32(checkCmd.ExecuteScalar()); - - if (userCount > 0) - { - errorLog.Add($"User {user.Firstname} {user.Lastname} already exists for customer {customerNumber}."); - return; - } - - // Insert user - string insertQuery = @" - INSERT INTO users (gender, firstname, lastname, birthdate, street, postal_code, city, email, customer_id) - VALUES (@gender, @firstname, @lastname, @birthdate, @street, @postal_code, @city, @Email, @customer_id)"; - MySqlCommand insertCmd = new MySqlCommand(insertQuery, myConnection); - insertCmd.Parameters.AddWithValue("@gender", user.Gender); - insertCmd.Parameters.AddWithValue("@firstname", user.Firstname); - insertCmd.Parameters.AddWithValue("@lastname", user.Lastname); - insertCmd.Parameters.AddWithValue("@birthdate", user.Birthdate); - insertCmd.Parameters.AddWithValue("@street", user.Address.Street); - insertCmd.Parameters.AddWithValue("@postal_code", user.Address.PostalCode); - insertCmd.Parameters.AddWithValue("@city", user.Address.City); - insertCmd.Parameters.AddWithValue("@Email", user.Email); - insertCmd.Parameters.AddWithValue("@customer_id", customerNumber); - - insertCmd.ExecuteNonQuery(); - myConnection.Close(); - } - catch (MySqlException ex) - { - errorLog.Add($"Database error: {ex.Message}"); - } - } - } -} - -class User -{ - public string Gender { get; set; } - public string Firstname { get; set; } - public string Lastname { get; set; } - public string Birthdate { get; set; } - public Address Address { get; set; } - public string Email { get; set; } - public List Phones { get; set; } = new List(); -} - -class Address -{ - public string Street { get; set; } - public string PostalCode { get; set; } - public string City { get; set; } -} - -class Phone -{ - public string Prefix { get; set; } - public string Number { get; set; } -} +} \ No newline at end of file diff --git a/Projekt_Calcan_Conze/Projekt_Calcan_Conze/obj/Debug/net8.0/Projekt_Calcan_Conze.AssemblyInfo.cs b/Projekt_Calcan_Conze/Projekt_Calcan_Conze/obj/Debug/net8.0/Projekt_Calcan_Conze.AssemblyInfo.cs index 7373c4d..560e172 100644 --- a/Projekt_Calcan_Conze/Projekt_Calcan_Conze/obj/Debug/net8.0/Projekt_Calcan_Conze.AssemblyInfo.cs +++ b/Projekt_Calcan_Conze/Projekt_Calcan_Conze/obj/Debug/net8.0/Projekt_Calcan_Conze.AssemblyInfo.cs @@ -14,7 +14,7 @@ using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("Projekt_Calcan_Conze")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+5c51f68e6cd6355fd53b485ad50b2778d47b8dc0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+9f2e9cbec8646502e9f8d8e82a8d93ceb2077c93")] [assembly: System.Reflection.AssemblyProductAttribute("Projekt_Calcan_Conze")] [assembly: System.Reflection.AssemblyTitleAttribute("Projekt_Calcan_Conze")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] diff --git a/Projekt_Calcan_Conze/Projekt_Calcan_Conze/obj/Debug/net8.0/Projekt_Calcan_Conze.AssemblyInfoInputs.cache b/Projekt_Calcan_Conze/Projekt_Calcan_Conze/obj/Debug/net8.0/Projekt_Calcan_Conze.AssemblyInfoInputs.cache index aa7de51..54a967d 100644 --- a/Projekt_Calcan_Conze/Projekt_Calcan_Conze/obj/Debug/net8.0/Projekt_Calcan_Conze.AssemblyInfoInputs.cache +++ b/Projekt_Calcan_Conze/Projekt_Calcan_Conze/obj/Debug/net8.0/Projekt_Calcan_Conze.AssemblyInfoInputs.cache @@ -1 +1 @@ -eae42f1b5ea27ad223d9cfc838d7801feb8aee718629ae41759404b6e801f0e1 +b7a6e87d6dec130dcc98889acb8324098d6ecce8b407916d22fbac7ae0858d76 diff --git a/Projekt_Calcan_Conze/Projekt_Calcan_Conze/obj/Debug/net8.0/Projekt_Calcan_Conze.assets.cache b/Projekt_Calcan_Conze/Projekt_Calcan_Conze/obj/Debug/net8.0/Projekt_Calcan_Conze.assets.cache index 6d68d5e37c713c25b0afc1dd9523d400ebe0f716..c5cac350374475a06f37ebfe900389126bf71cd8 100644 GIT binary patch delta 64 zcmV-G0Kfm}lmY0J0WDBVM?nk#001Pelf`%I>&j;--eg2ztW?W=;`zmwCw?OdWk W{-x$M0004#AR8@{uqg|%WdlmZMICJb delta 64 zcmV-G0Kfm}lmY0J0WDBVM?nk#000QdsMli9-U-r=Ih`|~n$hRA0SYVQ<(bN?A1IHy Wpr__F0004#AR8@{uqg|%Wdllgg&L&* diff --git a/Projekt_Calcan_Conze/Projekt_Calcan_Conze/obj/Projekt_Calcan_Conze.csproj.nuget.dgspec.json b/Projekt_Calcan_Conze/Projekt_Calcan_Conze/obj/Projekt_Calcan_Conze.csproj.nuget.dgspec.json index 153c628..d7a113c 100644 --- a/Projekt_Calcan_Conze/Projekt_Calcan_Conze/obj/Projekt_Calcan_Conze.csproj.nuget.dgspec.json +++ b/Projekt_Calcan_Conze/Projekt_Calcan_Conze/obj/Projekt_Calcan_Conze.csproj.nuget.dgspec.json @@ -66,7 +66,7 @@ "privateAssets": "all" } }, - "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.302/PortableRuntimeIdentifierGraph.json" + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.400/PortableRuntimeIdentifierGraph.json" } } } diff --git a/Projekt_Calcan_Conze/Projekt_Calcan_Conze/obj/Projekt_Calcan_Conze.csproj.nuget.g.props b/Projekt_Calcan_Conze/Projekt_Calcan_Conze/obj/Projekt_Calcan_Conze.csproj.nuget.g.props index 718cb55..86c23a6 100644 --- a/Projekt_Calcan_Conze/Projekt_Calcan_Conze/obj/Projekt_Calcan_Conze.csproj.nuget.g.props +++ b/Projekt_Calcan_Conze/Projekt_Calcan_Conze/obj/Projekt_Calcan_Conze.csproj.nuget.g.props @@ -7,7 +7,7 @@ $(UserProfile)\.nuget\packages\ C:\Users\bib\.nuget\packages\ PackageReference - 6.10.1 + 6.11.0 diff --git a/Projekt_Calcan_Conze/Projekt_Calcan_Conze/obj/project.assets.json b/Projekt_Calcan_Conze/Projekt_Calcan_Conze/obj/project.assets.json index c4cf230..a795b00 100644 --- a/Projekt_Calcan_Conze/Projekt_Calcan_Conze/obj/project.assets.json +++ b/Projekt_Calcan_Conze/Projekt_Calcan_Conze/obj/project.assets.json @@ -1850,7 +1850,7 @@ "privateAssets": "all" } }, - "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.302/PortableRuntimeIdentifierGraph.json" + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.400/PortableRuntimeIdentifierGraph.json" } } } diff --git a/Projekt_Calcan_Conze/Projekt_Calcan_Conze/obj/project.nuget.cache b/Projekt_Calcan_Conze/Projekt_Calcan_Conze/obj/project.nuget.cache index 0c5c666..da2597e 100644 --- a/Projekt_Calcan_Conze/Projekt_Calcan_Conze/obj/project.nuget.cache +++ b/Projekt_Calcan_Conze/Projekt_Calcan_Conze/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "eoIzlhHxBoI=", + "dgSpecHash": "3YDIWICGXm0=", "success": true, "projectFilePath": "C:\\Jan_bib_Module\\PMC\\Projekt\\Projekt_Calcan_Conze\\Projekt_Calcan_Conze\\Projekt_Calcan_Conze.csproj", "expectedPackageFiles": [