WpfExample/TimeScheduler
2015-12-07 23:20:32 +01:00
..
package Dokumentation eingebaut und aktuelle Element wird nun gekennzeichnet 2015-12-06 23:25:21 +01:00
TimeScheduler Readme eingebaut und Projekt daran ausgerichtet 2015-12-07 23:20:32 +01:00
TimeScheduler.Test Dokumentation eingebaut und aktuelle Element wird nun gekennzeichnet 2015-12-06 23:25:21 +01:00
Readme.txt Readme eingebaut und Projekt daran ausgerichtet 2015-12-07 23:20:32 +01:00
TimeScheduler.sln Readme eingebaut und Projekt daran ausgerichtet 2015-12-07 23:20:32 +01:00

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