# 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