using System.Data; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using MahApps.Metro.Controls; using Npgsql; using Npgsql.Replication; namespace PrototypWPFHAG; /// /// Interaction logic for MainWindow.xaml /// public partial class MainWindow : MetroWindow { public MainWindow() { InitializeComponent(); } private void Window_Loaded(object sender, RoutedEventArgs e) { UsernameTextBox.Focus(); // Focus first TextBox on start } private static NpgsqlConnection GetConnection() { return new NpgsqlConnection("Server=localhost;Port=5432;User Id=postgres;Password=postgres;Database=postgres;"); } private string ValidateUser(string username, string password) { using (NpgsqlConnection con = GetConnection()) { con.Open(); // Check for correct UserName string userQuery = "SELECT COUNT(*) FROM \"User\" WHERE \"UserName\" = @username"; using (NpgsqlCommand userCmd = new NpgsqlCommand(userQuery, con)) { userCmd.Parameters.AddWithValue("@username", username); int userExists = Convert.ToInt32(userCmd.ExecuteScalar()); if (userExists == 0) { return "Dieser Benutzername existiert nicht"; } } // Check for correct Password string pwQuery = "SELECT COUNT(*) FROM \"User\" WHERE \"UserName\" = @username AND \"Password\" = @password"; using (NpgsqlCommand pwCmd = new NpgsqlCommand(pwQuery, con)) { pwCmd.Parameters.AddWithValue("@username", username); pwCmd.Parameters.AddWithValue("@password", password); int correctPassword = Convert.ToInt32(pwCmd.ExecuteScalar()); if (correctPassword == 0) { return "Falsches Password!"; } } } return "Erfolgreich"; } private void ShowPasswordButton_PreviewMouseDown(object sender, RoutedEventArgs e) { PasswordVisibleTextBox.Text = PasswordTextBox.Password; // Write password in the visible box PasswordVisibleTextBox.Visibility = Visibility.Visible; PasswordTextBox.Visibility = Visibility.Collapsed; } private void ShowPasswordButton_Click(object sender, RoutedEventArgs e) { if (PasswordTextBox.Visibility == Visibility.Visible) { // Show password PasswordVisibleTextBox.Text = PasswordTextBox.Password; PasswordVisibleTextBox.Visibility = Visibility.Visible; PasswordTextBox.Visibility = Visibility.Collapsed; } else { // Hide password PasswordTextBox.Visibility = Visibility.Visible; PasswordVisibleTextBox.Visibility = Visibility.Collapsed; } } // Syncs password with visible TextBox private void PasswordTextBox_PasswordChanged(object sender, RoutedEventArgs e) { PasswordVisibleTextBox.Text = PasswordTextBox.Password; } private void loginButton_Click(object sender, RoutedEventArgs e) { string username = UsernameTextBox.Text; string password = PasswordTextBox.Password; string result = ValidateUser(username, password); if (result == "Erfolgreich") { SearchWindow searchWindow = new(); searchWindow.Show(); // Open new window this.Close(); // Close this window } else { MessageBox.Show(result, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error); } } }