de.katho.kBorrow.controller

## Class UserController

- java.lang.Object
- - de.katho.kBorrow.controller.UserController

    public class UserController
    extends java.lang.Object

UserController führt sämtliche Datenbankoperationen durch, die durch `UserPanel` angestoßen werden.

### Field Summary

Fields
`private DbConnector` `dbCon` Referenz auf die Datenbank
`private KLendingModel` `lendingModel` Referenz auf das KLendingModel, wird benötigt, um Tabellen und Listen zu aktualiseren.
`private KUserModel` `userModel` Referenz auf das KUserModel, wird benötigt, um Tabellen und Listen zu aktualisieren.

### Constructor Summary

Constructors
Constructor and Description
`UserController(DbConnector pDbCon, java.util.HashMap<java.lang.String,KDataModel> models)` Erzeugt eine neue Instanz des UserController und setzt nötige Referenzen.

### Method Summary

All Methods Instance Methods Concrete Methods
`int` `createUser(java.lang.String pName, java.lang.String pSurname)` Erzeugt einen neuen User in der Datenbank.
`boolean` `deleteUser(int pId)` Löscht einen Benutzer aus der Datenbank.
`int` `editUser(int pId, java.lang.String pName, java.lang.String pSurname)` Bearbeitet einen bestehenden User in der Datenbank.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### dbCon

    private DbConnector dbCon

Referenz auf die Datenbank

#### userModel

    private KUserModel userModel

Referenz auf das KUserModel, wird benötigt, um Tabellen und Listen zu aktualisieren.

#### lendingModel

    private KLendingModel lendingModel

Referenz auf das KLendingModel, wird benötigt, um Tabellen und Listen zu aktualiseren.

### Constructor Detail

#### UserController

    public UserController(DbConnector pDbCon,
                          java.util.HashMap<java.lang.String,KDataModel> models)

Erzeugt eine neue Instanz des UserController und setzt nötige Referenzen.

Parameters:
  `pDbCon` - Referenz auf die Datenbank.
  `models` - HashMap mit den KDataModels.

### Method Detail

#### createUser

    public int createUser(java.lang.String pName,
                          java.lang.String pSurname)

Erzeugt einen neuen User in der Datenbank.

Gibt je nach Bearbeitungsergebnis verschiedene Statuscodes zurück.

- 0: Benutzer wurde erfolgreich erzeugt.
- 1: SQL-Fehler.
- 2: pName und pSurname sind leer.

Parameters:
  `pName` - Vorname des Users.
  `pSurname` - Nachname des Users.
Returns:
  Statuscode als Int.

#### editUser

    public int editUser(int pId,
                        java.lang.String pName,
                        java.lang.String pSurname)

Bearbeitet einen bestehenden User in der Datenbank.

Gibt je nach Bearbeitungsergebnis verschiedene Statuscodes zurück.

- 0: Benutzer wurde erfolgreich bearbeitet.
- 1: SQL-Fehler.
- 2: pName und pSurname sind leer.

Parameters:
  `pId` - ID des Benutzers, der bearbeitet werden soll.
  `pName` - (Neuer) Vorname des Users.
  `pSurname` - (Neuer) Nachname des Users.
Returns:
  Statuscode als Int.

#### deleteUser

    public boolean deleteUser(int pId)

Löscht einen Benutzer aus der Datenbank.

Falls ein Benutzer gelöscht werden soll, auf den noch Ausleihen eingetragen sind, wird `RewriteToNewUserDialog` aufgerufen, wo der Benutzer die Möglichkeit hat, einen Benutzer auszuwählen, auf den die Ausleihen umgeschrieben werden sollen.

Parameters:
  `pId` - ID des Benutzers, der gelöscht werden soll.
Returns:
  True, wenn der Benutzer gelöscht werden konnte, false, wenn er nicht gelöscht werden konnte.