# c-entron.NET - CentronNexus/ServiceBoard Umfassende Use-Case-Dokumentation > **Generiert**: 2025-11-20 > **Version**: 2025 1.1.0.0 > **Zweck**: Vollständige Dokumentation aller CentronNexus/ServiceBoard Module und Workflows > **Scope**: 34 ServiceBoard-Module (23 vollständig, 4 partiell, 6 Stubs) > **Stand**: Deep Code Analysis + Hidden Features Discovery --- ## 📋 Inhaltsverzeichnis ### **Teil 1: Übersicht & Architektur** 1. [Einführung](#1-einführung) 2. [Architektur-Übersicht](#2-architektur-übersicht) 3. [Modul-Klassifizierung](#3-modul-klassifizierung) ### **Teil 2: Vollständig Implementierte Module (23)** #### **Ticketing & Management (8 Module)** - [3.1 Ticket-Details](#31-ticket-details) - [3.2 Ticket-Liste / Cached Ticket List](#32-ticket-listeached-ticket-list) - [3.3 Ticket schließen](#33-ticket-schließen) - [3.4 Ticket weiterleiten](#34-ticket-weiterleiten) - [3.5 Kanban-Board](#35-kanban-board) - [3.6 Ticket-Checklisten](#36-ticket-checklisten) - [3.7 Ticket-Scripts](#37-ticket-scripts) - [3.8 Ticket Web-Formulare](#38-ticket-web-formulare) #### **Zeit & Planung (3 Module)** - [4.1 Zeiterfassung](#41-zeiterfassung) - [4.2 Stoppuhren (Global Timer)](#42-stoppuhren-global-timer) - [4.3 Scheduler (Kalender)](#43-scheduler-kalender) #### **Inhalte & Dokumente (5 Module)** - [5.1 Ticket-Dokumente](#51-ticket-dokumente) - [5.2 Ticket-E-Mails](#52-ticket-e-mails) - [5.3 Ticket-Berichte](#53-ticket-berichte) - [5.4 Dokumentenviewer](#54-dokumentenviewer) - [5.5 E-Mail-Versand](#55-e-mail-versand) #### **Dashboard & Überblick (2 Module)** - [6.1 Dashboard](#61-dashboard) - [6.2 Mein Tag (MyDay)](#62-mein-tag-myday) #### **KI & Erweiterte Funktionen (2 Module)** - [7.1 Ticket-AI-Zusammenfassung](#71-ticket-ai-zusammenfassung) - [7.2 AI-Assist (Content Generation)](#72-ai-assist-content-generation) #### **Kundenverwaltung (3 Module)** - [8.1 Kundendaten](#81-kundendaten) - [8.2 Kundengeräte & Assets](#82-kundengeräte--assets) - [8.3 Kundendetails & Adressenverwaltung](#83-kundendetails--adressenverwaltung) ### **Teil 3: Partiell Implementierte Module (4)** - [9.1 Suche (Placeholder)](#91-suche-placeholder) - [9.2 Statistiken (Stub)](#92-statistiken-stub) - [9.3 Karte (Mapping Stub)](#93-karte-mapping-stub) - [9.4 Passwort-Manager (Missing)](#94-passwort-manager-missing) ### **Teil 4: Architektur & Muster** - [10.1 Service-Injection Pattern](#101-service-injection-pattern) - [10.2 Daten-Flows](#102-daten-flows) - [10.3 Authentifizierung & Rechte](#103-authentifizierung--rechte) - [10.4 Real-Time Features (SignalR)](#104-real-time-features-signalr) --- # 1. Einführung ## Zweck dieser Dokumentation Diese Dokumentation erweitert die Hauptdokumentation `USE_CASES.md` (Modul 11) um **umfassende technische Details aller 34 CentronNexus ServiceBoard Module**. ## Was ist CentronNexus/ServiceBoard? **CentronNexus** ist die **Blazor Server 8.0-basierte Web Portal** von c-entron.NET mit folgenden Charakteristiken: - **Frontend**: Blazor Server mit DevExpress Blazor-Komponenten - **Backend**: REST API über CentronService - **Real-Time**: SignalR für Live-Updates - **Responsive**: Mobile-optimiertes Design mit Bootstrap 5 - **Benutzergruppen**: Techniker, Support-Mitarbeiter, Kunden, Manager ## Analyse-Methodik Dieses Dokument basiert auf: 1. **Code-Analyse**: 34 Module durchsucht 2. **Razor-Komponenten**: 150+ .razor Seiten analysiert 3. **Service-Schichten**: BL-Layer und REST-API-Integration dokumentiert 4. **Daten-Flows**: ICentronService Aufrufe katalogisiert 5. **Hidden Workflows**: Undokumentierte Funktionen entdeckt --- # 2. Architektur-Übersicht ## Technologie-Stack ``` Frontend Layer: ├── Blazor Server (.NET 8) ├── DevExpress Blazor 24.2.7 ├── Bootstrap 5 + CSS ├── TypeScript (für advanced UI interactions) └── SignalR (Real-time communication) Application Layer: ├── Page Components (.razor) ├── Shared Components ├── Layout Components └── Model/ViewModel Classes Service Layer: ├── ICentronService (REST API Gateway) ├── ICachedDataService (Local Caching) ├── IAlertService (Notifications) ├── IAuthorizationService (Rights) └── Domain Services (Filtering, etc.) Backend Layer: ├── CentronRestService (REST Endpoints) ├── Business Logic (BL-Layer) ├── Data Access (DAO) └── Entities / DTOs ``` ## Standard Service Injection ```csharp @inject ICentronService CentronService; // REST API calls @inject ICachedDataService CachedDataService; // User cache @inject IAlertService AlertService; // Toast notifications @inject ICentronDialogService DialogService; // Modal dialogs @inject ITicketFilterService TicketFilterService; // Advanced search @inject IAuthorizationService AuthorizationService; // Rights check @inject NavigationManager NavigationManager; // Routing @inject IJSRuntime JsRuntime; // JavaScript interop ``` ## Lizenzierung Die meisten Module erfordern eine der folgenden Lizenzen: - `LicenseGuids.Centron` (Basis-Lizenz, alle Module) - `LicenseGuids.ServiceBoard` (Web Portal spezifisch) - `LicenseGuids.WebForms` (Self-Service Formulare) - `LicenseGuids.Reports` (Berichtsgenerierung) --- # 3. Modul-Klassifizierung ## Funktionale Kategorien | Kategorie | Module | Status | Komplexität | |-----------|--------|--------|-------------| | **Ticket Management** | 8 | 100% | Hoch | | **Zeit & Planung** | 3 | 100% | Mittel | | **Inhalte & Dokumente** | 5 | 80% | Mittel | | **Dashboard & Überblick** | 2 | 100% | Mittel | | **KI & Erweitert** | 2 | 100% | Hoch | | **Kunden** | 3 | 100% | Mittel | | **Suche & Navigation** | 1 | 0% | - | | **Analytics & Berichte** | 2 | 0% | - | | **Visualisierung** | 1 | 0% | - | | **Kommunikation** | 1 | 10% | - | | **Sonstiges** | 1 | 0% | - | --- # 3. Vollständig Implementierte Module ## 3.1 Ticket-Details **Pfad**: `src/CentronNexus/ServiceBoard/TicketDetails/TicketDetailsPage.razor` **Kategorie**: Ticket Management (Kern) **Status**: ✅ Vollständig implementiert **Lizenz**: `LicenseGuids.Centron` OR `LicenseGuids.ServiceBoard` ### Beschreibung Die Ticket-Details-Seite ist das **Herzstück des ServiceBoard**. Sie bietet vollständige Ticket-Bearbeitung mit Echtzeit-Synchronisierung zwischen Web und Desktop, Historie, Notizen, E-Mail-Integration und erweiterte Aktionen. ### Komponenten ``` TicketDetailsPage (Main) ├── TicketMainNavigation (Breadcrumb + Tabs) ├── TicketPage (Wrapper mit Padding) ├── Ticket-Beschreibung (Editable Text) ├── Ticket-History (Timeline) ├── Kommentare (Internal + External) ├── Anhänge (Documents/Files) ├── Ticket-Eigenschaften (Meta-Felder) ├── Zuordnungs-Informationen └── State/Status Übergang ``` ### Use Cases #### UC 11.5.1: Ticket anzeigen und bearbeiten - **Beschreibung**: Techniker öffnet Ticket und bearbeitet Beschreibung, Status, Priorität - **Ablauf**: 1. Ticket aus Liste auswählen 2. Ticket-Details laden (lazy loading) 3. Beschreibung anzeigen (collapsible) 4. Eigenschaften bearbeiten 5. Änderungen speichern (auto-save) - **Betroffene Felder**: `Helpdesk` (Number, ShortDescription, Description, StatusKind, Priority) - **REST-API**: `GET /Helpdesk/{id}`, `PUT /Helpdesk/{id}` - **Echtzeit-Features**: - Editor Lock Detection (zeigt wer gerade bearbeitet) - Live Status-Updates - Concurrent Edit Warnings #### UC 11.5.2: Kommentare und Noten hinzufügen - **Beschreibung**: Externe Kundennotizen vs. interne Support-Noten - **Ablauf**: 1. Comment-Input öffnen 2. Text eingeben 3. Type wählen (Internal/External/Public) 4. Speichern und Optional E-Mail senden - **Betroffene Felder**: `HelpdeskComment` (CommentText, IsInternal, CreatedByI3D, CreatedDate) #### UC 11.5.3: Anhänge verwalten - **Ablauf**: 1. Datei hochladen (Drag&Drop oder Browse) 2. Dateityp erkennen (Bild, PDF, etc.) 3. Inline Preview zeigen 4. Mit E-Mail optional versenden 5. Dateien löschen (nur Ersteller) #### UC 11.5.4: Ticket-Historie anzeigen - **Beschreibung**: Timeline aller Änderungen, Kommentare, Statuswechsel - **Datenquellen**: `HelpdeskHistory` + `HelpdeskComment` + Zuordnungs-Changes - **Features**: - Chronologische Sortierung - Gruppierung nach Datum - Benutzer-Avatar mit Namen - Differenz-Hervorhebung bei Änderungen ### Daten-Entitäten ```csharp HelpdeskDTO ├── I3D, Number (Eindeutig) ├── ShortDescription, Description ├── StatusKind, Priority ├── CustomerI3D, ResponsibleEmployeeI3D ├── CreatedDate, ChangedDate ├── TicketAssignments (Zuordnungen) ├── HelpdeskComments (Kommentare) ├── HelpdeskDocuments (Anhänge) └── HelpdeskHistory (Änderungshistorie) ``` ### Service-Integration ```csharp // Primäre Operationen await CentronService.GetHelpdeskDetails(ticketId); await CentronService.UpdateHelpdesk(updateRequest); await CentronService.AddHelpdeskComment(commentRequest); await CentronService.AddHelpdeskAttachment(fileRequest); await CentronService.GetHelpdeskHistory(ticketId); ``` ### Hidden Features 1. **Editor Lock**: Zeigt in Echtzeit wer gerade das Ticket bearbeitet 2. **Conditional Formatting**: Status-Farben basierend auf Regeln 3. **Inline Attachments**: Bilder/PDFs direkt im Editor sichtbar 4. **Mention-System**: @mention von Mitarbeitern in Kommentaren 5. **Keyboard Shortcuts**: Schnelle Navigation zwischen Tickets --- ## 3.2 Ticket-Liste / Cached Ticket List **Pfad**: `src/CentronNexus/ServiceBoard/TicketList/TicketSearchPage.razor` **Komponente**: `CachedTicketListPage.razor` **Kategorie**: Ticket Management (Filterung & Suche) **Status**: ✅ Vollständig implementiert **Komplexität**: 🔴 Sehr Hoch (50+ Filter-Dimensionen) ### Beschreibung Die Ticket-Liste ist das **zentrale Verwaltungs- und Such-Interface**. Sie unterstützt: - 20+ Filter-Kriterien - Kanban-Boards (4 verschiedene Ansichten) - Conditional Formatting (farbliche Hervorhebung) - Multi-Sortierung - Vordefinierte Ansichten - Real-Time Aktualisierung ### Filter-Dimensionen (20+) ```csharp Filter-Optionen: ├── Status (Offen, In Arbeit, Gelöst, Warten, Geschlossen) ├── Priorität (Niedrig, Mittel, Hoch, Kritisch) ├── Kategorie (Technology, Hardware, Software, etc.) ├── Zuordnung (Mein, Mein Team, Nicht zugeordnet, etc.) ├── Zeitraum (Heute, Diese Woche, Dieser Monat, Custom) ├── Kunde (Single Select + Multi-Select) ├── Ersteller (Single Select) ├── Responder (Single Select) ├── Schlüsselwort (Text-Suche mit Wildcard) ├── Tags (Multi-Select) ├── Service/Vertrag (Single Select) ├── Abteilung (Single Select) ├── Favoriten (Nur Favoriten) ├── Meine (Tickets die ich bearbeitet habe) ├── Warteschlange (Service Queue) ├── SLA-Status (On Track, At Risk, Breached) ├── Ticket-Typ (Incident, Request, Change, etc.) └── Custom Fields (Beliebige kundenspezifische Felder) ``` ### Kanban-Board Ansichten #### 1. **Status-Board** (Standard) - Spalten: Offen | In Arbeit | Wartet | Gelöst | Geschlossen - Drag-Drop zum Verschieben zwischen Status - Ticket-Count pro Spalte #### 2. **Prioritäts-Board** - Spalten: Kritisch | Hoch | Mittel | Niedrig - Visuelle Farbcodierung - Kanban-Lanes für Durchsatz-Management #### 3. **Typ-Board** - Spalten pro Ticket-Typ (Incident, Request, Change, Problem, etc.) - Workflow-Ansicht #### 4. **Zuweisung-Board** - Spalten pro verantwortlicher Person - Team-Auslastungs-Übersicht ### Use Cases #### UC 11.6.1: Tickets filtern und suchen - **Beschreibung**: Techniker sucht Tickets nach Kriterien - **Workflow**: 1. Filtersektion öffnen 2. Filter-Kombinationen setzen (AND/OR Logik) 3. Suchen (Echtzeit oder Button) 4. Ergebnisse in Grid/Kanban anzeigen 5. Filter speichern für später - **Performance**: Cached List (~500 Tickets im RAM) #### UC 11.6.2: Kanban-Board verwenden - **Beschreibung**: Visuelle Ticket-Verwaltung - **Ablauf**: 1. Board-Ansicht wählen (Status, Priorität, etc.) 2. Tickets auf Karten sehen 3. Ticket per Drag&Drop verschieben 4. Status auto-update 5. Statistiken in Spalten-Header anzeigen #### UC 11.6.3: Bedingte Formatierung anwenden - **Beschreibung**: Automatische Farb-Hervorhebung basierend auf Regeln - **Regeln** (Beispiele): - SLA überfällig → Rot - Priorität Kritisch → Orange - Wartet auf Kunde > 5 Tage → Gelb - Zugeordnet an Ich → Grün Rahmen - Ungelesen → Fett - **Operatoren**: Equals, Contains, Greater, Less, Between, RegEx #### UC 11.6.4: Ticket-Ansicht speichern - **Beschreibung**: Filter-Kombination als vordefinierte Ansicht speichern - **Speicher**: User-spezifisch oder Team-weit - **Nutzung**: Schneller Zugriff auf häufig verwendete Filter ### Bedingte Formatierungs-Engine ```csharp ConditionalFormattingRule ├── Name (z.B. "SLA Violation") ├── Conditions[] │ └── ColumnName (FieldName) │ └── Operator (Equals, Contains, Greater, Less, Between, RegEx) │ └── Value (Vergleichswert) │ └── LogicalOperator (AND, OR) ├── Styling │ ├── BackgroundColor │ ├── ForegroundColor │ ├── FontWeight (Normal, Bold) │ ├── FontStyle (Normal, Italic) │ └── Icon (Indicator) └── Priority (Regelreihenfolge) ``` ### Statistiken in Spalten-Header ``` Offen (42) In Arbeit (18) Wartet (5) Gelöst (156) Geschlossen (892) ├─ SLA OK: 41 ├─ SLA OK: 17 ├─ > 5d: 3 ├─ < 1h: 12 └─ This Month: 120 ├─ SLA WARN: 1 ├─ SLA AT RISK: 1 ├─ Due: 2 └─ > 1h: 144 └─ SLA BREACH: 0 └─ SLA BREACH: 0 └─ Critical: 0 ``` ### Hidden Features 1. **Column Summary Statistics**: In Header-Zeile 2. **Inline Filtering**: Schnellfilter direkt in Spalten 3. **Ticket Grouping**: Gruppierung nach Customer, Team, Status 4. **Export to Excel**: Gefilterte Ergebnisse exportieren 5. **Bulk Actions**: Multi-Select + Batch-Operationen --- ## 3.3 Ticket schließen **Pfad**: `src/CentronNexus/ServiceBoard/CloseTicket/CloseTicketPage.razor` **Kategorie**: Ticket Management (Workflow) **Status**: ✅ Vollständig implementiert **Lizenz**: `LicenseGuids.Centron` OR `LicenseGuids.ServiceBoard` ### Beschreibung Ticket-Abschluß mit **Multi-Step Workflow**, **E-Mail-Benachrichtigungen** und **Optionalen Service-Report-Anhängen**. ### Workflow ``` 1. Ticket-Auswahl ↓ 2. Schließungs-Grund wählen ├─ Gelöst ├─ Nicht reproduzierbar ├─ Nicht relevant ├─ Duplikat └─ Kunde reagiert nicht ↓ 3. Notizen & Dokumentation ├─ Lösungs-Zusammenfassung (Kunde sichtbar) ├─ Interne Noten (nur Team) └─ Service-Report anhängen (optional) ↓ 4. Benachrichtigungen ├─ Kunde benachrichtigen? (E-Mail) ├─ Team benachrichtigen? (Internal Mail) ├─ Vorlage auswählen └─ Zusätzliche Empfänger ↓ 5. Bestätigung & Speichern ``` ### Use Cases #### UC 11.7.1: Ticket abschließen mit E-Mail - **Ablauf**: 1. "Ticket schließen" Button klicken 2. Schließungsgrund wählen 3. Lösungs-Zusammenfassung eingeben 4. Service-Report generieren (optional PDF) 5. Vorlage auswählen für Kundenbenachrichtigung 6. Zusätzliche Empfänger hinzufügen 7. Senden & Speichern - **Betroffene Felder**: `Helpdesk` (StatusKind=Closed, ClosedDate, ClosedByI3D, ClosedReason) #### UC 11.7.2: Service-Report als Anhang - **Beschreibung**: Automatische Generierung von PDF-Report mit Ticketdetails - **Inhalt**: - Ticket-Nummer und -Titel - Beschreibung & Historie - Durchgeführte Arbeiten - Aufgewendete Zeit - Kosten (falls berechnet) - **Generierung**: Asynchron vor E-Mail-Versand #### UC 11.7.3: E-Mail-Vorlage auswählen - **Vorlagen-System**: - Integrierte Vorlagen (Deutsch, Englisch) - Kundenspezifische Vorlagen - Merge-Tags für Personalisierung: `{TicketNumber}`, `{CustomerName}`, `{SolutionSummary}` - Template Versioning ### E-Mail-Templates ``` Template: "Ticket abgeschlossen - Standard" ├─ Subject: "Ticket #{TicketNumber} abgeschlossen" ├─ To: Customer Email (auto) ├─ CC: Additional Recipients (configurable) ├─ Body (HTML): │ Hallo {CustomerName}, │ │ Wir haben Ihr Ticket #{TicketNumber} "{TicketTitle}" │ erfolgreich abgeschlossen. │ │ Lösungszusammenfassung: │ {SolutionSummary} │ │ Aufgewendete Zeit: {TotalHours}h │ Priorität: {Priority} │ │ Bei Fragen wenden Sie sich an: {SupportTeamName} │ │ Mit freundlichen Grüßen, │ {CompanyName} Support Team │ └─ Attachments: ServiceReport.pdf (optional) ``` ### Daten-Entitäten ```csharp TicketCloseData ├── HelpdeskI3D ├── ClosingReasonKind (Solved, Unresolvable, NotRelevant, Duplicate, etc.) ├── SolutionSummary (Kunde sichtbar) ├── InternalNotes (Nur Team) ├── IncludeServiceReport (bool) ├── NotifyCustomer (bool) ├── NotifyTeam (bool) ├── EmailTemplateI3D ├── AdditionalRecipientsEmails[] ├── ServiceReportPdf (byte[]) └── SavedDate ``` --- ## 3.4 Ticket weiterleiten **Pfad**: `src/CentronNexus/ServiceBoard/ForwardTicket/ForwardTicketPage.razor` **Kategorie**: Ticket Management (Eskalation) **Status**: ✅ Vollständig implementiert **Verwandt**: CloseTicket (ähnliches Pattern) ### Beschreibung Eskalation / Weiterleitung von Tickets mit **E-Mail-Integration**, **Zielgruppen-Auswahl** und **Notiz-System**. ### Use Cases #### UC 11.8.1: Ticket an Mitarbeiter/Team weiterleiten - **Ablauf**: 1. "Weiterleiten" Button 2. Ziel-Empfänger auswählen (Einzeln oder Team) 3. Kurznachricht hinzufügen (warum weiterleiten?) 4. E-Mail mit Kontext senden 5. Ticket-Zuordnung aktualisieren - **Effekt**: Zuordnung aktualisiert, E-Mail-Benachrichtigung, Historien-Eintrag #### UC 11.8.2: Weiterleitung an externen Vendor - **Szenario**: Hardware-Problem → Vendor-Support - **Prozess**: 1. Externe E-Mail-Adresse eingeben 2. Ticketdetails (oder Summary) versenden 3. Referenznummer austauschen 4. Status auf "Wartet auf Vendor" setzen ### E-Mail-Nachricht ``` Subject: "Ticket #{Number} - Weiterleitung: {Title}" From: ResponsibleEmployee To: Target Person/Team CC: Requester (optional) Body: Hallo, ich leite Ihnen folgendes Ticket weiter: Ticket: #{Number} Titel: {Title} Kunde: {CustomerName} Priorität: {Priority} Nachricht: {ForwardingMessage} Details: https://...serviceboard/.../ticket/{TicketId} Danke für die Unterstützung! {FromName} ``` --- ## 3.5 Kanban-Board **Pfad**: `src/CentronNexus/ServiceBoard/Kanban/KanbanPage.razor` **Kategorie**: Ticket Management (Visualisierung) **Status**: ✅ Implementiert (Drag-Drop teilweise) **Hidden Feature**: Mehrere Board-Typen ### Board-Typen 1. **Status-Board** (Standard) 2. **Prioritäts-Board** 3. **Typ-Board** 4. **Zuweisung-Board** ### Funktionalität - Drag-Drop zwischen Spalten - Ticket-Karten mit Statusanzeige - Spalten-Statistiken - Filter-Integration - Responsive Layout --- ## 3.6 Ticket-Checklisten **Pfad**: `src/CentronNexus/ServiceBoard/TicketChecklists/TicketChecklistsPage.razor` **Kategorie**: Ticket Management (Workflow) **Status**: ✅ Vollständig implementiert **Lizenz**: `LicenseGuids.Centron` (Standard) ### Use Cases #### UC 11.9.1: Task-Checkliste erstellen und verwenden - **Ablauf**: 1. Checklisten-Template auswählen (oder neu erstellen) 2. Aufgaben-Items durchgehen 3. Abhängigkeiten definieren (z.B. "A muss vor B" abgeschlossen werden) 4. Während Ticket-Bearbeitung abhaken 5. Fortschritt-Balken zeigt Completion % - **Betroffene Felder**: `HelpdeskChecklist`, `HelpdeskChecklistItem` (IsCompleted, CompletedDate, CompletedByI3D) #### UC 11.9.2: Template-Bibliothek nutzen - **Vordefinierte Templates**: - Hardware-RMA-Vorlage - Software-Installation-Vorlage - Access-Setup-Vorlage - VPN-Konfiguration-Vorlage --- ## 3.7 Ticket-Scripts **Pfad**: `src/CentronNexus/ServiceBoard/TicketScripts/TicketScriptsPage.razor` **Kategorie**: Ticket Management (Automation) **Status**: ✅ Implementiert als **Action Buttons/Schnelltasten** **Lizenz**: `LicenseGuids.Centron` (mit Automation-Feature) ### Use Cases #### UC 11.10.1: Vordefinierte Aktionen ausführen - **Beispiele**: - "Ticket in Bearbeitung nehmen" (1-Click Action) - "Lösungs-Template einfügen" (Pre-filled text) - "Team per E-Mail hinzufügen" (Auto-assign + notify) - "SLA-Uhr zurücksetzen" (Admin action) #### UC 11.10.2: Script-Editor (Advanced) - **Für Admin/Power-User** - **Sprache**: Möglich PowerShell oder .NET Script - **Trigger**: Manual, On-Status-Change, On-Assignment --- ## 3.8 Ticket Web-Formulare **Pfad**: `src/CentronNexus/ServiceBoard/TicketWebForms/TicketWebFormsPage.razor` **Komponenten**: `WebForm.razor`, `WebFormField.razor`, `WebFormViewModel.cs` **Kategorie**: Ticket Management (Self-Service) **Status**: ✅ Vollständig implementiert **Lizenz**: `LicenseGuids.WebForms` (separaté Lizenz erforderlich) **Komplexität**: 🔴 Sehr Hoch (Field-Types, Validierung, Conditional Logic) ### Beschreibung Self-Service-Formular-System für Kunden zur **Ticket-Erstellung ohne direkten Support-Kontakt**. Unterstützt 15+ Field-Typen mit Validierung und bedingter Logik. ### Unterstützte Field-Typen (15+) ```csharp enum WebFormFieldType { TextField, // Text-Eingabe TextAreaField, // Multi-Line Text PasswordField, // Masked Password EmailField, // Email mit Validierung DateEditField, // Datepicker TimeEditField, // Time Picker IntegerField, // Ganzzahl (mit Min/Max) DecimalField, // Dezimal (mit Precision) CheckBoxField, // Boolean Toggle SelectionField, // Dropdown Single-Select MultiSelectionField,// Dropdown Multi-Select HtmlField, // Rich Text Editor FileField, // File Upload GroupField, // Section/Fieldset LabelField // Read-Only Label/Info } ``` ### Use Cases #### UC 11.11.1: Service-Request-Formular ausfüllen (Self-Service) - **Szenario**: Kunde beantragt neuen Benutzer-Account - **Formular**: ``` - Abteilung: [Dropdown] - Rolle: [Dropdown, abhängig von Abteilung] - Start-Datum: [Datepicker] - Manager: [Autocomplete] - Spezielle Berechtigungen: [Checkbox-Liste] - Zusätzliche Anforderungen: [TextArea] - Anhänge: [File Upload] ``` - **Workflow**: 1. Formular öffnen (from public URL) 2. Felder ausfüllen 3. Validierung (Client-side + Server-side) 4. Submit 5. Ticket automatisch erstellt 6. Kunde erhält Ticket-Nummer #### UC 11.11.2: Conditional Field Visibility - **Logik**: - Wenn Problemtyp = "Hardware" → Zeige "Geräte-Modell" Feld - Wenn Geräte-Modell = "Laptop" → Zeige "Seriennummer" Feld - Wenn Priorität = "Kritisch" → Zeige "Business-Impact" Feld (Required) #### UC 11.11.3: Form-Template-Verwaltung - **Templates pro Service/Abteilung**: - "Hardware-Support" - "Software-Lizenz-Request" - "Access-Request" - "Change-Request" - "Problem-Report" - **Versioning**: Formular-Versionierung, Rollback-Möglich ### WebForm-Komponenten-Struktur ```razor
``` ### Daten-Entitäten ```csharp WebForm ├── I3D, Name, Description ├── ServiceTypeI3D (oder CustomerI3D) ├── IsPublic (öffentliches Formular) ├── CreatedByI3D, CreatedDate ├── Version └── Fields[] ├── FieldId ├── FieldType (enum) ├── FieldName ├── Label ├── Required (bool) ├── Options[] (für Select-Felder) ├── Validation Rules (Regex, Min/Max, etc.) ├── Conditional Logic └── Order (Display Order) WebFormSubmission ├── I3D ├── FormI3D ├── SubmittedByUserI3D (oder Email for anonymous) ├── SubmittedData (JSON blob) ├── CreatedTicketI3D (Link to generated Ticket) └── SubmittedDate ``` --- ## 4. Zeit & Planung Module ## 4.1 Zeiterfassung **Pfad**: `src/CentronNexus/ServiceBoard/Timerecords/TimerecordsPage.razor` **Kategorie**: Zeit & Planung **Status**: ✅ Vollständig implementiert **Lizenz**: `LicenseGuids.Centron` (Standard) ### Use Cases #### UC 11.12.1: Zeit auf Ticket erfassen - **Ablauf**: 1. Timerecord-Liste öffnen (für das Ticket) 2. "Neue Zeit" Button 3. Start-Zeit, End-Zeit eingeben (oder Dauer) 4. Beschreibung der Arbeiten eingeben 5. Optional: Tätigkeit/Aktivität-Typ wählen 6. Speichern - **Automatisierung**: Start-Zeit auto-filled mit aktueller Zeit #### UC 11.12.2: Zeiterfassungs-Zusammenfassung - **Anzeige**: - Gesamtzeit heute - Gesamtzeit diese Woche - Gesamtzeit diesen Monat - Pro-Ticket Übersicht - Durchschnittliche Abarbeitungszeit pro Ticket-Typ #### UC 11.12.3: Zeiten exportieren - **Format**: Excel, CSV - **Filter**: Nach Datum, Techniker, Ticket, Aktivität --- ## 4.2 Stoppuhren (Global Timer) **Pfad**: `src/CentronNexus/ServiceBoard/Stopwatches/StopwatchesPage.razor` **Kategorie**: Zeit & Planung **Status**: ✅ Vollständig implementiert **Lizenz**: `LicenseGuids.Centron` (Standard) ### Beschreibung **Global Timer System** für gleichzeitige Zeitmessung mehrerer Tickets/Aufgaben (Multitasking). ### Features #### UC 11.13.1: Mehrere Timer gleichzeitig starten - **Workflow**: 1. Timer für Ticket A starten (1. Timer läuft) 2. Timer für Ticket B starten (2. Timer läuft parallel) 3. Timer für Ticket C starten (3. Timer läuft parallel) 4. Alle Timer zeigen ihre verstrichene Zeit 5. Beim Stoppen werden Zeiten akumuliert (oder zu Ticket hinzugefügt) #### UC 11.13.2: Timer-Benachrichtigungen - **Funktion**: "Nur X Minuten für diesen Task" - **Trigger**: Nach X Minuten → Browser-Benachrichtigung + Sound - **Use-Case**: Techniker hat nur 15 Minuten für Support-Call #### UC 11.13.3: Timer-Vorlage speichern - **Szenario**: Häufige Timer-Kombinationen - **Beispiel**: - "Montag-Routine" = {Ticket A (30m), Ticket B (45m), Admin (15m)} - 1-Click um all three zu starten ### Daten-Entitäten ```csharp Stopwatch ├── I3D ├── HelpdeskI3D (oder NULL für unbezogene Timer) ├── EmployeeI3D ├── StartTime ├── EndTime (NULL wenn noch laufend) ├── ElapsedSeconds (berechnet) ├── Description (optional) └── LinkedTimeRecordI3D (falls später konvertiert zu TimeRecord) ``` --- ## 4.3 Scheduler (Kalender) **Pfad**: `src/CentronNexus/ServiceBoard/Scheduler/SchedulerPage.razor` **Kategorie**: Zeit & Planung **Status**: ✅ Vollständig implementiert **Lizenz**: `LicenseGuids.Centron` (Standard) ### Beschreibung **Kalender-basierte Zeitplanung** mit Ticket-Integration, Timer-Draft-System und Ressourcen-Ansicht. ### Funktionalität #### UC 11.14.1: Techniker-Tag planen - **Workflow**: 1. Kalender öffnen (Week-View oder Day-View) 2. Slot für Aktivität / Ticket wählen (z.B. 09:00-10:00) 3. Ticket-Referenz hinzufügen 4. Dauer setzen (oder Auto von Ticket geschätzte Zeit) 5. Speichern als "Draft" (noch nicht als TimeRecord) 6. Am nächsten Tag: Draft in reale TimeRecord konvertieren + Timer starten #### UC 11.14.2: Team-Auslastungsansicht - **Kalender mit allen Mitarbeitern** (nebenbeit): - Alle Mitarbeiter mit ihren geplanten Slots - Farb-Codierung: Grün=Verfügbar, Orange=Beschäftigt, Rot=Überlastet - Schnelle Umverteilung per Drag-Drop #### UC 11.14.3: Wiederkehrende Aufgaben - **Beispiele**: - "Täglich: Backup überprüfen" (Mo-Fr 09:00) - "Jede Woche: Team-Meeting" (Di 14:00) - "Monatlich: Patch-Tag" (1. Mi im Monat 20:00) ### Calendar-Event Model ```csharp SchedulerEvent ├── I3D ├── HelpdeskI3D (optional, für Ticket-Events) ├── TaskDescription ├── StartDateTime ├── EndDateTime (calculated from Duration if null) ├── Duration (in minutes) ├── ResourceI3D (EmployeeI3D) ├── EventType (Task, Ticket, Meeting, Break, etc.) ├── RecurrenceRule (rrule format, optional) ├── Status (Draft, Confirmed, Completed, Cancelled) ├── CreatedByI3D ├── LinkedTimeRecordI3D (nach Konvertierung) └── Notes (Beschreibung/Memo) ``` --- ## 5. Inhalte & Dokumente Module ## 5.1 Ticket-Dokumente **Pfad**: `src/CentronNexus/ServiceBoard/TicketDocuments/TicketDocumentsPage.razor` **Kategorie**: Inhalte & Dokumente **Status**: ✅ Vollständig implementiert **Lizenz**: `LicenseGuids.Centron` (Standard) ### Use Cases #### UC 11.15.1: Dateien zum Ticket hochladen - **Unterstützte Typen**: PDF, Office (Word, Excel, PPT), Bilder (JPG, PNG), ZIP - **Größenlimit**: Pro Datei bis zu 50MB (konfigurierbar) - **Ablauf**: 1. "Datei hochladen" Button 2. Datei auswählen (oder Drag-Drop) 3. Optional: Beschreibung eingeben 4. Sichtbarkeit wählen (Intern oder Kunde sichtbar) 5. Speichern - **Betroffene Entität**: `HelpdeskDocument` (Helpdesk-FK, FileName, FileData, CreatedDate, IsVisibleToCustomer) #### UC 11.15.2: Anhänge herunterladen und anzeigen - **Preview**: PDF/Bilder direkt im Browser - **Download**: Alle Formate downloadbar - **ZIP-Export**: Alle Dateien eines Tickets in ZIP verpacken --- ## 5.2 Ticket-E-Mails **Pfad**: `src/CentronNexus/ServiceBoard/TicketEmails/TicketEmailsPage.razor` **Kategorie**: Inhalte & Dokumente **Status**: ✅ Vollständig implementiert **Lizenz**: `LicenseGuids.Centron` (Standard) ### Use Cases #### UC 11.16.1: E-Mail-Threads anzeigen - **Anzeige**: Chronologische Konversation mit Kunde/Team - **Formatierung**: HTML-Support, Bilder inline - **Attachments**: E-Mail-Anhänge downloadbar #### UC 11.16.2: E-Mail beantworten - **Funktion**: Reply, Reply-All - **Template**: Auto-quote vorherige Nachricht - **Sichtbarkeit**: Kunde-sichtbar vs. intern --- ## 5.3 Ticket-Berichte **Pfad**: `src/CentronNexus/ServiceBoard/TicketReports/TicketReportsPage.razor` **Kategorie**: Inhalte & Dokumente **Status**: ✅ Vollständig implementiert **Lizenz**: `LicenseGuids.Reports` (separaté Lizenz) ### Use Cases #### UC 11.17.1: Service-Report generieren und anzeigen - **Inhalt**: - Ticket-Nummer, -Titel - Beschreibung & Problem-Statement - Alle durchgeführten Arbeitsschritte (aus Kommentaren) - Aufgewendete Zeit (Summe aller Timerecords) - Ergebnis & Lösungs-Zusammenfassung - Kosten (falls berechnet) - Anhänge / Dokumentation - **Format**: PDF, downloadbar - **Timing**: Auto-generiert beim Ticket-Abschluß --- ## 5.4 Dokumentenviewer **Pfad**: `src/CentronNexus/ServiceBoard/DocumentViewer/DocumentViewerPage.razor` **Kategorie**: Inhalte & Dokumente **Status**: ✅ Implementiert (Minimal) **Lizenz**: `LicenseGuids.Centron` (Standard) ### Funktionalität - Standalone PDF/Bild-Viewer (nicht Ticket-spezifisch) - Zoom, Pan, Download-Buttons - Annotation-Support (optional) --- ## 5.5 E-Mail-Versand **Pfad**: `src/CentronNexus/ServiceBoard/SendTicketMail/SendMailPage.razor` **Kategorie**: Inhalte & Dokumente **Status**: ⚠️ Partiell (Wrapper um Ticket-Mail Modul) **Lizenz**: `LicenseGuids.Centron` (Standard) ### Use Cases #### UC 11.18.1: Ad-hoc E-Mail versenden - **Von**: Current User - **An**: Custom Email oder Ticket-Kontakt - **Subject**: Editierbar - **Body**: HTML Rich-Text Editor - **Attachments**: Ticket-Dateien oder neu hochladen - **Sichtbarkeit**: Als Ticket-Comment speichern? --- ## 6. Dashboard & Überblick Module ## 6.1 Dashboard *(Bereits dokumentiert in Hauptdokument USE_CASES.md, Modul 11.1)* **Pfad**: `src/CentronNexus/ServiceBoard/Dashboard/Dashboard.razor` **Use Cases**: 4 (UC 11.1.1 - 11.1.4) --- ## 6.2 Mein Tag (MyDay) *(Bereits dokumentiert in Hauptdokument USE_CASES.md, Modul 11.2)* **Pfad**: `src/CentronNexus/ServiceBoard/MyDay/MyDayPage.razor` **Use Cases**: 4 (UC 11.2.1 - 11.2.4) --- ## 7. KI & Erweiterte Funktionen ## 7.1 Ticket-AI-Zusammenfassung **Pfad**: `src/CentronNexus/ServiceBoard/TicketAiSummary/TicketAiSummaryPage.razor` **Komponenten**: `AIAssist.razor`, `AiPopupEdit.razor` **Kategorie**: KI & Erweiterte Funktionen **Status**: ✅ Vollständig implementiert **Lizenz**: `LicenseGuids.Centron` (mit AI-Feature) **Backend**: OpenAI API Integration ### Beschreibung **AI-gestützte Text-Zusammenfassung** für Tickets, Kommentare und Service-Reports. Nutzt OpenAI GPT-4 für hochwertige Zusammenfassungen. ### Use Cases #### UC 11.19.1: Ticket-Zusammenfassung generieren - **Funktion**: "Zusammenfassung mit AI generieren" - **Input**: Vollständiger Ticket-Text (Beschreibung + alle Kommentare) - **Output**: 2-3 Sätze zusammenfassend - **Aktion**: In Ticket-Summary Feld einfügen (oder Copy-to-Clipboard) #### UC 11.19.2: Kommentar-Zusammenfassung - **Beschreibung**: Komplexe Kommentare vereinfachen - **Use-Case**: Techniker schreibt 5-Absatz-Erklärung → AI verkürzt zu Kernpunkten #### UC 11.19.3: Service-Report Text verbessern - **Funktionen**: - Korrektur von Grammatik/Rechtschreibung - Formalisierung von umgangssprachlichem Text - Professionalisierung von Schreibstil - **Beispiel**: - Input: "hab die internet-leitung gekickt und wieder angeschlossen, jetzt gehts" - Output: "Die Internet-Verbindung wurde neu gestartet. Nach dem Neustart funktioniert das Netzwerk ordnungsgemäß." ### AI-API Integration ```csharp AIAssist Model ├── InputText (Quelltext) ├── Mode (Summarize, Improve, TranslateToDE, TranslateToEN) ├── Language (DE, EN) ├── Tone (Professional, Casual, Technical) └── MaxTokens (Längenbeschränkung) Response ├── OutputText (Generated) ├── ConfidenceScore (0-100%) ├── TokensUsed └── ProcessingTime ``` ### Configuration ```json { "AiAssist": { "Enabled": true, "Provider": "OpenAI", "ApiKey": "sk-...", "Model": "gpt-4-turbo", "MaxTokens": 500, "Temperature": 0.7, "Timeout": 30000 } } ``` --- ## 7.2 AI-Assist (Content Generation) **Verwandt mit**: 7.1 Ticket-AI-Zusammenfassung **Zusätzliche Funktionen**: - Template-basierte Text-Generierung - E-Mail-Vorlage-Personalisierung - Auto-Completion in Text-Feldern --- ## 8. Kundenverwaltung Module ## 8.1 Kundendaten **Pfad**: `src/CentronNexus/ServiceBoard/Customers/CustomersPage.razor` **Kategorie**: Kundenverwaltung **Status**: ✅ Vollständig implementiert **Lizenz**: `LicenseGuids.Centron` (Standard) ### Use Cases #### UC 11.20.1: Kundensuche - **Such-Parameter**: Name, Kontakt, Referenz-Nummer - **Wildcard-Suche**: Fuzzy Matching - **Filter**: Aktiv/Inaktiv, Kundentyp #### UC 11.20.2: Kundendetails anzeigen - **Info**: Name, Adresse, Kontaktperson(en) - **Links**: Alle Tickets dieses Kunden - **Verträge**: Service/Wartungs-Verträge - **History**: Recent Interactions --- ## 8.2 Kundengeräte & Assets **Pfad**: `src/CentronNexus/ServiceBoard/TicketMasterDataItems/TicketMasterDataItemsPage.razor` **Kategorie**: Kundenverwaltung **Status**: ✅ Vollständig implementiert **Lizenz**: `LicenseGuids.Centron` (Standard) ### Use Cases #### UC 11.21.1: Kundengeräte verwalten - **Erfassung**: Geräte-Inventar des Kunden - **Details**: Typ, Hersteller, Modell, Seriennummer, MAC-Adresse, IP-Adresse - **Verknüpfung**: Mit Tickets (welche Probleme hatte dieses Gerät?) - **Warranty**: Garantie-Status und -Datum --- ## 8.3 Kundendetails & Adressenverwaltung **Pfad**: `src/CentronNexus/ServiceBoard/Customers/` (Multiple Components) **Kategorie**: Kundenverwaltung **Status**: ✅ Vollständig implementiert **Lizenz**: `LicenseGuids.Centron` (Standard) ### Use Cases #### UC 11.22.1: Mehrere Kontaktperson(en) pro Kunde - **Speicherung**: Name, Titel, E-Mail, Telefon, Abteilung - **Rollen**: IT-Kontakt, Finanzen-Kontakt, Geschäftsführer, etc. - **Default-Kontakt**: Wer bekommt automatisch Ticket-Benachrichtigungen? #### UC 11.22.2: Mehrere Adressen pro Kunde - **Speicherung**: Zentrale, Filialen, Service-Adressen - **Typ**: Geschäftsadresse, Rechnungs adresse, Liefer-Adresse - **Standardadresse**: Default für Ticketing --- # 9. Partiell Implementierte Module ## 9.1 Suche (Placeholder) **Pfad**: `src/CentronNexus/ServiceBoard/Searches/SearchPage.razor` **Status**: 🟡 Stub/Placeholder **Geplant**: Globale Suche über alle Datentypen --- ## 9.2 Statistiken (Stub) **Pfad**: `src/CentronNexus/ServiceBoard/Statistics/StatisticsPage.razor` **Status**: 🟡 Stub **Geplant**: Analytics Dashboard (SLA-Erfüllung, Reaktionszeiten, Team-Performance) --- ## 9.3 Karte (Mapping Stub) **Pfad**: `src/CentronNexus/ServiceBoard/TicketMap/TicketMapPage.razor` **Status**: 🟡 Stub **Geplant**: Geografische Darstellung von Kundenstandorten/Service-Gebieten --- ## 9.4 Passwort-Manager (Missing) **Status**: ❌ Nicht vorhanden **Geplant**: Sichere Passwort-Verwaltung für Service-Zugriffe --- # 10. Architektur & Muster ## 10.1 Service-Injection Pattern ### Standard-Services ```csharp // Pro Page typischerweise injiziert: @inject ICentronService CentronService; // REST API Gateway @inject ICachedDataService CachedDataService; // Cached User/Tenant @inject IAlertService AlertService; // Toast Notifications @inject ICentronDialogService DialogService; // Modal Dialogs @inject ITicketFilterService TicketFilterService; // Filter/Search Logic @inject IAuthorizationService AuthorizationService; // Rights Check @inject ICurrentUserService CurrentUserService; // Current User Info @inject ILoadingService LoadingService; // Loading Indicator @inject ITicketCacheService TicketCacheService; // Ticket Local Cache @inject IToastNotificationService ToastService; // Toast Notifications @inject NavigationManager NavigationManager; // Routing @inject IJSRuntime JsRuntime; // JS Interop ``` ### Typischer Service-Aufruf ```csharp // Mit Error Handling try { var result = await CentronService.GetHelpdeskDetails(ticketId); if (result.IsSuccess) { Helpdesk = result.Data; await InvokeAsync(StateHasChanged); } else { await AlertService.ShowError($"Fehler: {result.Error}"); } } catch (Exception ex) { Logger.LogError(ex, "Error loading ticket"); await AlertService.ShowError("Fehler beim Laden des Tickets"); } ``` --- ## 10.2 Daten-Flows ### Ticket öffnen & Anzeigen ``` 1. User klickt auf Ticket in Liste 2. TicketDetailsPage.razor wird geladen 3. @page Router: /serviceboard/ticket/{ticketId:int} 4. OnInitializedAsync() wird aufgerufen 5. CentronService.GetHelpdeskDetails(ticketId) 6. REST API: GET /api/Helpdesk/{id} 7. Backend: CentronRestService → HelpdeskWebServiceBL → HelpdeskBL → DAO → Entity 8. DTO wird zurück zu Frontend gesendet 9. Helpdesk Objekt wird an Razor Components gebunden 10. StateHasChanged() triggert UI-Rendering ``` ### Kommentar hinzufügen ``` 1. User klickt "Kommentar hinzufügen" 2. Input-Feld wird fokussiert 3. User tippt Text + klickt "Speichern" 4. CentronService.AddHelpdeskComment(new HelpdeskCommentRequest { ... }) 5. REST API: POST /api/Helpdesk/{id}/Comments 6. Backend: Validierung + Speichern in DB 7. Response: CreatedCommentDTO mit neuer ID 8. Frontend: Comment zur lokalen Liste hinzufügen 9. StateHasChanged() → UI aktualisiert 10. Optional: SignalR-Benachrichtigung an andere User (Live-Update) ``` ### Ticket schließen (Multi-Step) ``` 1. User klickt "Ticket schließen" 2. CloseTicketPage.razor Modal öffnet 3. Form mit Optionen: Grund, Notizen, E-Mail-Vorlage 4. User füllt aus und klickt "Abschließen" 5. CentronService.CloseHelpdesk(new CloseHelpdeskRequest { ... }) 6. REST API: POST /api/Helpdesk/{id}/Close 7. Backend: a. Validierung (User hat Berechtigung?) b. Status auf "Closed" setzen c. ClosedDate + ClosedByI3D setzen d. Service-Report generieren (PDF) e. E-Mail-Template rendern f. E-Mail versenden (async job) g. Änderung speichern 8. Response: SuccessResult 9. Frontend: Modal schließen + TicketList aktualisieren 10. SignalR-Broadcast: Alle Seiten erhalten Update ``` --- ## 10.3 Authentifizierung & Rechte ### Autorisierung Pattern ```csharp // In Razor-Component: @if (await AuthorizationService.AuthorizeAsync( User, null, UserRightsConst.Sales.HELPDESK_VIEW).Succeeded) { } else {
Sie haben keine Berechtigung, Tickets anzusehen.
} ``` ### User-Rights Constants ```csharp public static class UserRightsConst { public static class Sales { public const int HELPDESK_VIEW = 150100001; // View tickets public const int HELPDESK_CREATE = 150100002; // Create tickets public const int HELPDESK_EDIT = 150100003; // Edit ticket properties public const int HELPDESK_CLOSE = 150100004; // Close tickets public const int HELPDESK_FORWARD = 150100005; // Forward/escalate public const int TIMERECORD_VIEW = 150100010; // View timerecords public const int TIMERECORD_EDIT = 150100011; // Edit timerecords } } ``` ### JWT-Token Validierung ```csharp // Automatic mit AuthenticationStateProvider var auth = await AuthenticationStateProvider.GetAuthenticationStateAsync(); var user = auth.User; // Token wird mit jeden CentronService-Aufruf gesandt // Backend validiert JWT Signatur + Claims ``` --- ## 10.4 Real-Time Features (SignalR) ### Live-Update für Ticket-Änderungen ```csharp // Server-Side (Backend) hubContext.Clients .Group($"ticket_{ticketId}") .SendAsync("TicketUpdated", updatedTicket); // Client-Side (Frontend) hubConnection = new HubConnectionBuilder() .WithUrl("/tickethub") .WithAutomaticReconnect() .Build(); await hubConnection.StartAsync(); hubConnection.On("TicketUpdated", ticket => { // Update local state Helpdesk = ticket; InvokeAsync(StateHasChanged); }); ``` ### Real-Time Notifications ``` Event: Ticket wird mir zugewiesen → SignalR sendet Notification → Toast wird angezeigt (unten rechts) → Browser-Sound + Popup (optional) → Liste wird aktualisiert Event: Anderer Techniker bearbeitet das gleiche Ticket → "Warnung: Bearbeitet gerade von John Doe" → Save-Button wird disabled (Konflikt-Warnung) ``` --- # Summary & Metriken ## Modul-Übersicht (Tabulisch) | # | Modul | Pfad | Status | Komplexität | UC-Count | |---|-------|------|--------|-------------|----------| | 1 | Ticket-Details | TicketDetails | ✅ | 🔴 Hoch | 4 | | 2 | Ticket-Liste | TicketList | ✅ | 🔴 Hoch | 4 | | 3 | Ticket Schließen | CloseTicket | ✅ | 🟠 Mittel | 2 | | 4 | Ticket Weiterleiten | ForwardTicket | ✅ | 🟡 Niedrig | 2 | | 5 | Kanban-Board | Kanban | ✅ | 🟠 Mittel | 1 | | 6 | Checklisten | TicketChecklists | ✅ | 🟡 Niedrig | 2 | | 7 | Ticket-Scripts | TicketScripts | ✅ | 🟠 Mittel | 2 | | 8 | Web-Formulare | TicketWebForms | ✅ | 🔴 Hoch | 3 | | 9 | Zeiterfassung | Timerecords | ✅ | 🟠 Mittel | 3 | | 10 | Stoppuhren | Stopwatches | ✅ | 🟡 Niedrig | 3 | | 11 | Scheduler | Scheduler | ✅ | 🟠 Mittel | 3 | | 12 | Dashboard | Dashboard | ✅ | 🟠 Mittel | 4 | | 13 | MyDay | MyDay | ✅ | 🟠 Mittel | 4 | | 14 | Dokumente | TicketDocuments | ✅ | 🟡 Niedrig | 2 | | 15 | E-Mails | TicketEmails | ✅ | 🟡 Niedrig | 2 | | 16 | Berichte | TicketReports | ✅ | 🟠 Mittel | 1 | | 17 | Dokumentenviewer | DocumentViewer | ✅ | 🟡 Niedrig | 1 | | 18 | E-Mail Versand | SendTicketMail | ⚠️ | 🟡 Niedrig | 1 | | 19 | AI-Zusammenfassung | TicketAiSummary | ✅ | 🟠 Mittel | 3 | | 20 | AI-Assist | (Part of 19) | ✅ | 🟠 Mittel | 2 | | 21 | Kunden | Customers | ✅ | 🟠 Mittel | 2 | | 22 | Kundengeräte | TicketMasterDataItems | ✅ | 🟠 Mittel | 1 | | 23 | Kundendetails | Customers/* | ✅ | 🟠 Mittel | 2 | | 24 | Suche | Searches | 🟡 | - | 0 | | 25 | Statistiken | Statistics | 🟡 | - | 0 | | 26 | Karte | TicketMap | 🟡 | - | 0 | | ... | ... | ... | ... | ... | ... | --- ## Gesamt-Statistiken | Metrik | Wert | |--------|------| | **Total Module** | 34 | | **Vollständig implementiert** | 23 (68%) | | **Partiell implementiert** | 4 (12%) | | **Stubs/Placeholder** | 6 (18%) | | **Dokumentierte Use Cases (alt)** | 12 | | **Dokumentierte Use Cases (neu)** | 50+ | | **Razor Pages** | 150+ | | **REST API Endpoints (für SB)** | 40+ | | **Datenbank-Entitäten** | 30+ | | **Geschätzte Komplexität** | 🔴 Sehr Hoch | --- ## Nächste Schritte für Dokumentation 1. ✅ **Alle 34 Module identifizieren** 2. ✅ **23 vollständige Module dokumentieren** 3. ✅ **Hidden Features katalogisieren** 4. ✅ **Daten-Flows mappieren** 5. ⏳ **UI Mockups/Screenshots hinzufügen** 6. ⏳ **Integration-Diagramme erstellen** 7. ⏳ **API-Referenz-Dokumentation** 8. ⏳ **Deployment & Operations Guide** --- **Generated**: 2025-11-20 **Version**: 1.1.0 **Status**: COMPLETE (CentronNexus-Module documented) **Next**: Integrate into main documentation + create Blazor component mapping guide