47 lines
2.5 KiB
Text
47 lines
2.5 KiB
Text
Beispielprojekt für die Anwendung von WPF.
|
|
|
|
Anforderung:
|
|
|
|
Mit der Applikation soll die Arbeitszeit automatisiert erfast und permanent gespeichert werden.
|
|
Dafür wird pro Zeiteinheit ein Element angelegt, das folgenden Eigenschaften besitzt:
|
|
- Beschreibung des Elementes
|
|
- Von-Zeitpunkt (1/4h genau)
|
|
- Bis-Zeitpunkt (1/4h genau)
|
|
- Kostenstelle
|
|
- Typ (Normal, Pause, Urlaub, Krank)
|
|
Die Darstellung des Elementes soll vom Typ abhängig sein, z.B. Hintergrundfarbe ist normal blau und bei Pause gelb.
|
|
Es sollen nicht immer alle Elemente dargestellt werden, sondern nur die das selektieren Tages.
|
|
|
|
Die aktuelle Arbeitszeit, soll graphisch markiert sein, und deren Endezeit soll automatisch angepasst werden.
|
|
Beim Sperren/Ruhezustand soll autmoatisch die aktuelle Arbeitszeit abgeschlossen werden und eine neue gestartet
|
|
werden, aber nur wenn die aktuelle Arbeitszeit > 15min ist.
|
|
|
|
Über ein Menü (z.B. Kontextmenü) erstellt man eine neue aktuelle oder löscht eine vorhandene. Zur Einfachheit
|
|
darf man die aktuelle Arbeitszeit nicht löschen.
|
|
Desweitern soll man die selektierte Arbeitszeit mit der nächsten Arbeitszeit verschmelzen können, wobei nur die
|
|
Endezeit auf das selektierte Objekt übernommen wird.
|
|
Um einen Überblick über die Daten zu bekommen, soll es eine Diagnoseoberfläche geben, in der man
|
|
|
|
Beim Start wird die zuletzt gespeicherten Daten geladen und die letzte Arbeitszeit des aktuellen Tages wird als
|
|
aktuelle Arbeitszeit hergenommen. Bei Änderungen an den Arbeitszeiten, sollen diese direkt permanent gespeichert
|
|
werden, spätestens beim beenden der Anwendung.
|
|
Das speichern sollte sehr robust werden, damit die Datei nicht zerstört werden, wenn während des speichern die
|
|
Anwendung abstürzt.
|
|
|
|
Zur Implementierung soll WPF mit dem MVVM-Pattern benutzt werden
|
|
|
|
Erweiterte Funktionaltiät:
|
|
- Bei Sperrungen/Ruhezustände über 8h soll das Element nicht als Arbeitzeit gelten sondern entfernt werden
|
|
- Es erscheint eine Nachfrage nach einer Entsperrung/Aufwachen (aus Ruhezustand) wie die Zeit seit der
|
|
letzten Sperrung/Ruhezustand eingetragen werden soll
|
|
- Kostenstellen-Editor einbauen
|
|
- Die Kostenstellen in Task aufteilen
|
|
|
|
|
|
Beschreibung der Struktur:
|
|
- Oberflächen sind direkt in der Root
|
|
- ViewModel: die ViewModels für die Oberflächen
|
|
- Resource: Resourcen die benötigt werden
|
|
- Model: Klassen, die die Datenbestände beinhalten
|
|
- Domain: Schnittstellen und Implementierungen für die Datenbeschaffung
|
|
- Common: Allgmeine Klassen die in jeder WPF-Anwendung benötigt werden
|