Was den MVC betrifft;
Mit MVC hat dein Code nicht viel zu tun. Da fehlt zum einen das Modell, das M in MVC. Stattdessen übernimmt dein Controller die Aufgaben des Modells. Das kann man so machen, dann sollte man aber nicht MVC dranscreiben.
Natürlich gibt es das Modell aber sowas von:
Lt. Wiki:
Das Modell enthält Daten, die von der Präsentation dargestellt werden.
In Fakt, das Modell ist die Klasse ToDo
. Die Instanz dieser Klasse transportiert nämlich sämtliche Daten bzw. referenziert diese Daten, also Benutzereingaben und auch die Daten aus dem Repository die zur Darstellung ins View gerendert werden. Hierzu gibt es Eigenschaften und Methoden.
Unabhängig vom DAL haben diese Daten sogar immer dieselbe Struktur. Was auch den Transportlayer transparent macht.
Im Übrigen dient mein Controller dazu die Benutzereingaben zu validieren. Wobei auch das Umschalten zu einer anderen Sicht (View) eine Benutzereingabe ist. Die gesamte Logik ist, und das haben Webanwendungen so an sich, über eine Parameterkontollstruktur abgebildet.
MFG