From 5aa0055815e859e0da95c2d5f326b90bf009c5a5 Mon Sep 17 00:00:00 2001 From: Exudonze <145332493+Exudonze@users.noreply.github.com> Date: Mon, 10 Jun 2024 16:45:07 +0200 Subject: [PATCH] Update RegisterWindow.xaml.cs valiedierung --- bibtalk/bib-talk/RegisterWindow.xaml.cs | 67 +++++++++++++++++++++---- 1 file changed, 58 insertions(+), 9 deletions(-) diff --git a/bibtalk/bib-talk/RegisterWindow.xaml.cs b/bibtalk/bib-talk/RegisterWindow.xaml.cs index 1abebca..fd215e1 100644 --- a/bibtalk/bib-talk/RegisterWindow.xaml.cs +++ b/bibtalk/bib-talk/RegisterWindow.xaml.cs @@ -4,6 +4,7 @@ using System.Collections.Generic; using System.Linq; using System.Net.Http; using System.Text; +using System.Text.RegularExpressions; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; @@ -14,8 +15,6 @@ using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; -using System.Net.Http; -using Newtonsoft.Json; namespace bib_talk { @@ -38,9 +37,10 @@ namespace bib_talk DragMove(); } } + private void Login_Click(object sender, RoutedEventArgs e) { - Login login= new Login(); + Login login = new Login(); login.Show(); this.Close(); } @@ -49,9 +49,17 @@ namespace bib_talk { if (checkboxAGB.IsChecked == true) { - RegisterServer(); + if (ValidateRegistration()) + { + RegisterServer(); + } + } + else + { + MessageBox.Show("Bitte akzeptieren Sie die AGB."); } } + private void CheckBox_Checked(object sender, RoutedEventArgs e) { SolidColorBrush customBrush = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#FF6332A0")); @@ -63,7 +71,48 @@ namespace bib_talk { SolidColorBrush customBrush = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#FF323134")); weiterbutton.Foreground = Brushes.Gray; - weiterbutton.Background= customBrush; + weiterbutton.Background = customBrush; + } + + private bool ValidateRegistration() + { + string username = usernbox.Text; + string password = passwordbox.Password; + string email = emailbox.Text; + string day = bday1.Text; + string month = bday2.Text; + string year = bday3.Text; + + // Benutzername validieren + if (string.IsNullOrWhiteSpace(username) || username.Length < 3) + { + MessageBox.Show("Der Benutzername muss mindestens 3 Zeichen lang sein."); + return false; + } + + // Passwort validieren + if (string.IsNullOrWhiteSpace(password) || password.Length < 6 || !Regex.IsMatch(password, @"^(?=.*[A-Za-z])(?=.*\d).{6,}$")) + { + MessageBox.Show("Das Passwort muss mindestens 6 Zeichen lang sein und sowohl Buchstaben als auch Zahlen enthalten."); + return false; + } + + // E-Mail validieren + if (string.IsNullOrWhiteSpace(email) || !Regex.IsMatch(email, @"^[^@\s]+@[^@\s]+\.[^@\s]+$")) + { + MessageBox.Show("Bitte geben Sie eine gültige E-Mail-Adresse ein."); + return false; + } + + // Geburtsdatum validieren + if (!int.TryParse(day, out int dayInt) || !int.TryParse(month, out int monthInt) || !int.TryParse(year, out int yearInt) || + !DateTime.TryParse($"{yearInt}-{monthInt}-{dayInt}", out DateTime birthDate) || birthDate > DateTime.Now.AddYears(-14)) + { + MessageBox.Show("Bitte geben Sie ein gültiges Geburtsdatum ein. Sie müssen mindestens 18 Jahre alt sein."); + return false; + } + + return true; } public async Task RegisterServer() @@ -71,8 +120,8 @@ namespace bib_talk string username = usernbox.Text; string password = passwordbox.Password; string email = emailbox.Text; - string birthday = bday1.Text+"."+bday2.Text+"."+bday3.Text; - var newUser = new { Username = username, Password = password, Email = email, Birthday = birthday, IsOnline = ""}; + string birthday = $"{bday1.Text}.{bday2.Text}.{bday3.Text}"; + var newUser = new { Username = username, Password = password, Email = email, Birthday = birthday, IsOnline = "" }; string json = JsonConvert.SerializeObject(newUser); using (var client = new HttpClient()) @@ -82,11 +131,11 @@ namespace bib_talk if (response.IsSuccessStatusCode) { - MessageBox.Show("Registration Succesful"); + MessageBox.Show("Registrierung erfolgreich."); } else { - MessageBox.Show("Registration failed."+ response); + MessageBox.Show("Registrierung fehlgeschlagen. " + response); } } }