@using SZUAbsolventenverein.Module.PremiumArea.Services @using SZUAbsolventenverein.Module.PremiumArea.Models @namespace SZUAbsolventenverein.Module.PremiumArea @inherits ModuleBase @inject IEngineerApplicationService ApplicationService @inject NavigationManager NavManager

Ingenieur-Anträge Prüfen

@if (_applications == null) {

Laden...

} else {
@if (FilteredApplications.Count == 0) {

Keine Anträge gefunden.

} else { @if (_filterStatus == "Reported") { } @foreach (var app in FilteredApplications) { @if (_filterStatus == "Reported") { } }
Benutzer ID Dateiname Datum StatusMeldegrundAktionen
@app.UserId @app.PdfFileName @(app.SubmittedOn?.ToShortDateString() ?? app.CreatedOn.ToShortDateString()) @app.Status @if(app.IsReported) { Gemeldet } @app.ReportReason
}
@if (_selectedApp != null) {
Antragsdetails
Benutzer ID
@_selectedApp.UserId
Datei
@_selectedApp.PdfFileName
Status
@_selectedApp.Status
@if (_selectedApp.IsReported) {
Meldegrund
@_selectedApp.ReportReason (Anzahl: @_selectedApp.ReportCount)
}
@if (_selectedApp.Status != "Approved" || _selectedApp.IsReported) { } @if (_selectedApp.Status != "Rejected") { }
}
} @code { public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.Edit; // Admin Only private List _applications; private EngineerApplication _selectedApp; private string _filterStatus = "Validation"; protected override async Task OnInitializedAsync() { await LoadApps(); } private async Task LoadApps() { // Load All applications _applications = await ApplicationService.GetApplicationsAsync(ModuleState.ModuleId); } private List FilteredApplications { get { if (_applications == null) return new List(); if (_filterStatus == "Validation") return _applications.Where(a => a.Status == "Draft" || a.Status == "Submitted" || a.Status == "Published").ToList(); if (_filterStatus == "Reported") return _applications.Where(a => a.IsReported).ToList(); return _applications.Where(a => a.Status == _filterStatus).ToList(); } } private void SelectApp(EngineerApplication app) { _selectedApp = app; } private async Task ApproveApp() { if (_selectedApp == null) return; await ApplicationService.ApproveApplicationAsync(_selectedApp.ApplicationId, ModuleState.ModuleId); await LoadApps(); _selectedApp = null; } private async Task RejectApp() { if (_selectedApp == null) return; // Basic rejection without custom reason for now since UI input was removed await ApplicationService.RejectApplicationAsync(_selectedApp.ApplicationId, ModuleState.ModuleId, "Abgelehnt durch Admin"); await LoadApps(); _selectedApp = null; } }