Compare commits

...

2 Commits

Author SHA1 Message Date
Exudonze
696e4eeb03 Merge branch 'main' of https://git.bib.de/PBA3H22APE/bib_Talk_Chatprogramm 2024-06-10 16:45:23 +02:00
Exudonze
5aa0055815 Update RegisterWindow.xaml.cs
valiedierung
2024-06-10 16:45:07 +02:00

View File

@ -4,6 +4,7 @@ using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Net.Http; using System.Net.Http;
using System.Text; using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Windows; using System.Windows;
using System.Windows.Controls; using System.Windows.Controls;
@ -14,8 +15,6 @@ using System.Windows.Media;
using System.Windows.Media.Imaging; using System.Windows.Media.Imaging;
using System.Windows.Navigation; using System.Windows.Navigation;
using System.Windows.Shapes; using System.Windows.Shapes;
using System.Net.Http;
using Newtonsoft.Json;
namespace bib_talk namespace bib_talk
{ {
@ -38,6 +37,7 @@ namespace bib_talk
DragMove(); DragMove();
} }
} }
private void Login_Click(object sender, RoutedEventArgs e) private void Login_Click(object sender, RoutedEventArgs e)
{ {
Login login = new Login(); Login login = new Login();
@ -48,10 +48,18 @@ namespace bib_talk
private void WeiterButton_Click(object sender, RoutedEventArgs e) private void WeiterButton_Click(object sender, RoutedEventArgs e)
{ {
if (checkboxAGB.IsChecked == true) if (checkboxAGB.IsChecked == true)
{
if (ValidateRegistration())
{ {
RegisterServer(); RegisterServer();
} }
} }
else
{
MessageBox.Show("Bitte akzeptieren Sie die AGB.");
}
}
private void CheckBox_Checked(object sender, RoutedEventArgs e) private void CheckBox_Checked(object sender, RoutedEventArgs e)
{ {
SolidColorBrush customBrush = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#FF6332A0")); SolidColorBrush customBrush = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#FF6332A0"));
@ -66,12 +74,53 @@ namespace bib_talk
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() public async Task RegisterServer()
{ {
string username = usernbox.Text; string username = usernbox.Text;
string password = passwordbox.Password; string password = passwordbox.Password;
string email = emailbox.Text; string email = emailbox.Text;
string birthday = bday1.Text+"."+bday2.Text+"."+bday3.Text; string birthday = $"{bday1.Text}.{bday2.Text}.{bday3.Text}";
var newUser = new { Username = username, Password = password, Email = email, Birthday = birthday, IsOnline = "" }; var newUser = new { Username = username, Password = password, Email = email, Birthday = birthday, IsOnline = "" };
string json = JsonConvert.SerializeObject(newUser); string json = JsonConvert.SerializeObject(newUser);
@ -82,11 +131,11 @@ namespace bib_talk
if (response.IsSuccessStatusCode) if (response.IsSuccessStatusCode)
{ {
MessageBox.Show("Registration Succesful"); MessageBox.Show("Registrierung erfolgreich.");
} }
else else
{ {
MessageBox.Show("Registration failed."+ response); MessageBox.Show("Registrierung fehlgeschlagen. " + response);
} }
} }
} }