From 5f6b6f5dfaa7e68ec42e771ccc33a2ab2521dff0 Mon Sep 17 00:00:00 2001
From: "SIMONVOLLENDORF\\Simon" <simon.vollendorf@smail.inf.h-brs.de>
Date: Wed, 14 Jun 2017 08:49:49 +0200
Subject: [PATCH] =?UTF-8?q?+Splittung=20RegControl=20und=20RegDAO=20+Inser?=
 =?UTF-8?q?tion=20eingespeist,=20funktioniert=20aber=20noch=20nicht=20so?=
 =?UTF-8?q?=20ganz=20+leichte=20=C3=84nderung=20an=20der=20View,=20weil=20?=
 =?UTF-8?q?das=20DB-technisch=20so=20nicht=20funktioniert?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../java/org/s4s/dao/RegistrationDAO.java     | 38 ++++++++
 src/main/java/org/s4s/dao/ShopDAO.java        |  2 +-
 .../s4s/dao/impl/AbstractDatabaseClass.java   |  8 ++
 .../org/s4s/dao/impl/RegistrationControl.java | 87 ++++++++-----------
 .../org/s4s/gui/views/RegistrierungView.java  | 17 ++--
 src/main/java/org/s4s/modell/dto/User.java    | 55 ++++++++----
 .../webapp/VAADIN/themes/mytheme/styles.css   | 11 +--
 .../dao/impl/RegistrationControl_Test.java    |  3 +-
 8 files changed, 134 insertions(+), 87 deletions(-)
 create mode 100644 src/main/java/org/s4s/dao/RegistrationDAO.java

diff --git a/src/main/java/org/s4s/dao/RegistrationDAO.java b/src/main/java/org/s4s/dao/RegistrationDAO.java
new file mode 100644
index 0000000..a62c9f0
--- /dev/null
+++ b/src/main/java/org/s4s/dao/RegistrationDAO.java
@@ -0,0 +1,38 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.s4s.dao;
+
+import java.sql.*;
+import org.s4s.dao.impl.AbstractDatabaseClass;
+import org.s4s.exceptions.WrongInputException;
+import org.s4s.services.db.JDBCConnection;
+
+/**
+ *
+ * @author Simon
+ */
+public class RegistrationDAO extends AbstractDatabaseClass {
+    
+    Statement st = JDBCConnection.getInstance().getStatement();
+    String sql_update;
+    
+    public void addUser(String benutzer, String nachname, String vorname, java.util.Date gebDate, int fBereich, String email, String emailwdh, String passwort, String passwortWdh) {
+        try {
+            sql_update = "INSERT INTO \"ERR\".\"user\"(benutzername, nachname, vorname, geburtsdatum, fachbreichid, email, passwort)" + 
+                        "VALUES(" + benutzer + ", " + nachname + ", " + vorname + ", " + gebDate + ", " + fBereich + ", " + email + ", " + passwort + ")";
+                        
+            boolean exe = st.execute(sql_update);
+            if(!exe) {
+                throw new WrongInputException("Wrong Input!");
+            }
+            
+        } catch (Exception ex) {
+            ex.printStackTrace();
+            System.out.println("Exception occur: " + ex);
+        }
+        
+    }
+}
diff --git a/src/main/java/org/s4s/dao/ShopDAO.java b/src/main/java/org/s4s/dao/ShopDAO.java
index 6ff0f96..252742e 100644
--- a/src/main/java/org/s4s/dao/ShopDAO.java
+++ b/src/main/java/org/s4s/dao/ShopDAO.java
@@ -21,7 +21,7 @@ public class ShopDAO {
     public static ShopDAO dao = null;
     private final Statement statement = JDBCConnection.getInstance().getStatement();
     private ShopDAO() {
-        
+       
     }
 
     public static ShopDAO getInstance() {
diff --git a/src/main/java/org/s4s/dao/impl/AbstractDatabaseClass.java b/src/main/java/org/s4s/dao/impl/AbstractDatabaseClass.java
index ea416a0..8f2a8bf 100644
--- a/src/main/java/org/s4s/dao/impl/AbstractDatabaseClass.java
+++ b/src/main/java/org/s4s/dao/impl/AbstractDatabaseClass.java
@@ -28,4 +28,12 @@ public abstract class AbstractDatabaseClass {
         stat.closeOnCompletion();
         return set;
     }
+    
+    /*protected int executeUpdate(String sql) throws SQLException {
+        Statement stat = conn.getStatement();
+        int set = stat.executeUpdate(sql);
+        stat.closeOnCompletion();
+        return set;
+    }*/
+    
 }
diff --git a/src/main/java/org/s4s/dao/impl/RegistrationControl.java b/src/main/java/org/s4s/dao/impl/RegistrationControl.java
index 8c4942e..b24cf4d 100644
--- a/src/main/java/org/s4s/dao/impl/RegistrationControl.java
+++ b/src/main/java/org/s4s/dao/impl/RegistrationControl.java
@@ -5,10 +5,11 @@
  */
 package org.s4s.dao.impl;
 
-import java.sql.*;
+
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import org.apache.commons.validator.routines.EmailValidator;
+import org.s4s.dao.RegistrationDAO;
 import org.s4s.exceptions.WrongInputException;
 
 
@@ -22,67 +23,51 @@ public class RegistrationControl {
     private static String vorname;
     private static String email;
     private static String passwort;
+    private static RegistrationDAO regDAO = new RegistrationDAO();
     
-    //DB-Block
-    Connection con;
-    Statement st;
-    ResultSet rs;
-    String sql_update;
-    String url;
+   
     
+    /**
+     *
+     * @param benutzer
+     * @param nachname
+     * @param vorname
+     * @param gebDate
+     * @param fBereich
+     * @param email
+     * @param emailwdh
+     * @param passwort
+     * @param passwortWdh
+     */
     
-    public static boolean init(String[] data) {
-        nachname = data[0];
-        vorname = data[1];
-        email = data[2];
-        passwort = data[4];
+    public static void init(String benutzer, String nachname, String vorname, java.util.Date gebDate, int fBereich, String email, String emailwdh, String passwort, String passwortWdh) {
+       
+        
+        try {
+            if(!passwort.equals(passwortWdh)) {
+            throw new WrongInputException("Passwort entspricht nicht den Anforderungen!");
+        } 
         
-        if(!(passwort.equals(data[5]) || email.equals(data[3]))) {
-            return false;
+        if(!email.equals(emailwdh) && !emailValidator()) {
+            throw new WrongInputException("Email-Adressen stimmen nicht überein oder sind nicht gültig!");
         }
         
         if (!nameValidator(nachname)) {
-            return false;
+            throw new WrongInputException("Nachname enthält ungültige Zeichen!");
         }
         
         if (!nameValidator(vorname)) {
-            return false;
-        }
-        
-        if (!emailValidator()) {
-            return false;
+            throw new WrongInputException("Vorname enthält ungültige Zeichen!");
         }
         
         if (!passwordValidator()) {
-            return false;
+            throw new WrongInputException("Passwort ungültig!");
+        }        
+        } catch(WrongInputException w) {
+            w.printStackTrace();
+            System.out.println("Exception occur: " + w.getMessage());
         }
-        
-        return true;
-        
-    }
-    
-    
-    public void addUser(String[] data) {
-        try {
-            if (!init(data)) {
-                //Exception
-                throw new WrongInputException("Falsche Eingabe, bitte erneut eingeben!");
-            }
-            
-            con = DriverManager.getConnection(url);
-            st = con.createStatement();
-            
-            
-            sql_update = "INSERT INTO \"ERR\".\"user\"(email, passwort, nachname, vorname)" +
-                          "VALUES(email, passwort, nachname, vorname)"; //erweitern
-            
-            st.executeUpdate(sql_update);
-            
-        } catch (Exception ex) {
-            ex.printStackTrace();
-            System.out.println("Exception occur: " + ex);
-        }
-        
+        regDAO.addUser(benutzer, nachname, vorname, gebDate, fBereich, email, emailwdh, passwort, passwortWdh);
     }
     
     public static boolean nameValidator(String toValidate) {
@@ -101,10 +86,12 @@ public class RegistrationControl {
     }
     
     public static boolean passwordValidator() {
-        String regex = "^.*(?=.{8,})(?=..*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&+=]).*$";
+        
+        return passwort.length() > 8;
+        /* String regex = "^.*(?=.{8,})(?=..*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&+=]).*$";
         Pattern p = Pattern.compile(regex);
         Matcher m = p.matcher(passwort);
-        return m.matches();
+        return m.matches(); */
     }
     
 }
diff --git a/src/main/java/org/s4s/gui/views/RegistrierungView.java b/src/main/java/org/s4s/gui/views/RegistrierungView.java
index 1c6cef7..47e424a 100644
--- a/src/main/java/org/s4s/gui/views/RegistrierungView.java
+++ b/src/main/java/org/s4s/gui/views/RegistrierungView.java
@@ -63,11 +63,15 @@ public class RegistrierungView extends TemplateView implements View {
                 content.addComponent(vornameTxt);
                 
                 
-                NativeSelect fachbereich = new NativeSelect("Fachbereich");
-                fachbereich.addItems("Student", "Hivi", "Prof");
+               /* NativeSelect fachbereich = new NativeSelect("Fachbereich"); //hier braucht die Datenbank Integer Werte! Fachbereich ist nicht Student, Hiwi oder Prof sonder FB01, 02,03 etc!!
+                fachbereich.addItems("Student", "Hivi", "Prof");            //ich kann das grad nicht selber machen, weil ich beim deployen fehler kriege und nicht ungetestetes commiten möchte! Also bitte abändern!
                 fachbereich.setNullSelectionAllowed(false);
                 content.addComponent(fachbereich);
-
+*/
+                TextField fachbereich = new TextField("Fachbereich:");
+                fachbereich.setConverter(Integer.class);
+                fachbereich.setIcon(FontAwesome.ANDROID);
+                content.addComponent(fachbereich);
                 
 
                 TextField emailTxt = new TextField("E-Mail:");
@@ -112,7 +116,7 @@ public class RegistrierungView extends TemplateView implements View {
              String nachname = nachnameTxt.getValue();
              String vorname = vornameTxt.getValue();
              Date gebDate = bday.getValue();
-             String fBereich = (String) fachbereich.getValue();
+             int fBereich = (int) fachbereich.getConvertedValue();
              String email = emailTxt.getValue();
              String emailwdh = emailTxtWdh.getValue();
              String passwort = passwortTxt.getValue();
@@ -120,8 +124,9 @@ public class RegistrierungView extends TemplateView implements View {
              UI.getCurrent().getNavigator().navigateTo(Views.REGISTRIERUNGSBESTAETIGUNG);
 
              //Anbindungstestblock. svolle2s
-             RegistrationControl.init(new String[]{nachname, vorname, email, emailwdh, passwort, passwortWdh, benutzer,}); // diverse Daten fehlen siehe bday fachbereich 
-            
+             //RegistrationControl.init(new String[]{nachname, vorname, email, emailwdh, passwort, passwortWdh, benutzer,}); // diverse Daten fehlen siehe bday fachbereich 
+             RegistrationControl.init(benutzer, nachname, vorname, gebDate, fBereich, email, emailwdh, passwort, passwortWdh);
+             
              System.out.println(benutzer);
              System.out.println(nachname);
              System.out.println(vorname);
diff --git a/src/main/java/org/s4s/modell/dto/User.java b/src/main/java/org/s4s/modell/dto/User.java
index e78eda6..b7ad3ea 100644
--- a/src/main/java/org/s4s/modell/dto/User.java
+++ b/src/main/java/org/s4s/modell/dto/User.java
@@ -5,6 +5,8 @@
  */
 package org.s4s.modell.dto;
 
+import java.util.Date;
+
 /**
  *
  * @author Holger
@@ -12,48 +14,63 @@ package org.s4s.modell.dto;
 public class User {
 
     private int userId;
-    private String email;
-    private String geburtsdatum;
-    private int fachbereichId;
     private String vorname;
     private String nachname;
+    private Date geburtsdatum;
+    private int fachbereichId;
+    private String email;
+    
+    
 
     private final String benutzername;
 
     public User(String benutzername){
         this.benutzername = benutzername;
     }
+
+    public String getBenutzername() {
+        return benutzername;
+    }
     
-    public int getUserId() {
-        return userId;
+    public String getVorname() {
+        return vorname;
     }
 
-    public String getEmail() {
-        return email;
+    public void setVorname(String vorname) {
+        this.vorname = vorname;
     }
 
-    public String getGeburtsdatum() {
-        return geburtsdatum;
+    public String getNachname() {
+        return nachname;
     }
 
-    public int getFachbereichId() {
-        return fachbereichId;
+    public void setNachname(String nachname) {
+        this.nachname = nachname;
     }
 
-    public String getBenutzername() {
-        return benutzername;
+    public Date getGeburtsdatum() {
+        return geburtsdatum;
     }
 
+    public void setGeburtsdatum(Date geburtsdatum) {
+        this.geburtsdatum = geburtsdatum;
+    }
 
-    public String getVorname() {
-        return vorname;
+    public int getFachbereichId() {
+        return fachbereichId;
     }
 
-    public String getNachname() {
-        return nachname;
+    public void setFachbereichId(int fachbereichId) {
+        this.fachbereichId = fachbereichId;
     }
 
-    public String getUsername() {
-        return benutzername;
+    public String getEmail() {
+        return email;
+    }
+
+    public void setEmail(String email) {
+        this.email = email;
     }
+    
+     
 }
diff --git a/src/main/webapp/VAADIN/themes/mytheme/styles.css b/src/main/webapp/VAADIN/themes/mytheme/styles.css
index a4c1862..72ec58e 100644
--- a/src/main/webapp/VAADIN/themes/mytheme/styles.css
+++ b/src/main/webapp/VAADIN/themes/mytheme/styles.css
@@ -12984,7 +12984,6 @@ div.v-layout.v-horizontal.v-widget {
 	width: 19px;
 	overflow: hidden;
 }
-<<<<<<< HEAD
 
 .mytheme .customShell {
 	width: 1024px;
@@ -13049,12 +13048,4 @@ div.v-layout.v-horizontal.v-widget {
 
 .mytheme .LoginViewContainerTitelLayout {
 	padding-bottom: 15px;
-}
-=======
-/** Test
-h1 {
-    background-color: red;
-    
-}
-*/
->>>>>>> 47d7bfd324c39b8339db585da515957e5ac54bd3
+}
\ No newline at end of file
diff --git a/src/test/java/org/s4s/dao/impl/RegistrationControl_Test.java b/src/test/java/org/s4s/dao/impl/RegistrationControl_Test.java
index e19d70f..d3a6ffe 100644
--- a/src/test/java/org/s4s/dao/impl/RegistrationControl_Test.java
+++ b/src/test/java/org/s4s/dao/impl/RegistrationControl_Test.java
@@ -26,7 +26,8 @@ public class RegistrationControl_Test {
         data1[1] = "Simon";
         data1[2] = "simon.uerdingen@inf.h-brs.de";
         data1[4] = "12345";
-       assertTrue(RegistrationControl.init(data1));
+       //assertTrue(RegistrationControl.init(data1)); 
+       //@TM: der Test muss neu geschrieben werden, wegen Änderungen in View, DAO & Control; svolle2s
     }
 
 }
\ No newline at end of file
-- 
GitLab