@using SZUAbsolventenverein.Module.PremiumArea.Services @using SZUAbsolventenverein.Module.PremiumArea.Models @namespace SZUAbsolventenverein.Module.PremiumArea @inherits ModuleBase @inject IEngineerApplicationService ApplicationService @inject NavigationManager NavManager @if (Oqtane.Security.UserSecurity.IsAuthorized(PageState.User, RoleNames.Admin) || Oqtane.Security.UserSecurity.IsAuthorized(PageState.User, "Premium Member")) {

Genehmigte Ingenieur-Anträge

@if (_applications == null) {

Prüfe Premium-Zugang...

} else if (_applications.Count == 0) {
Keine genehmigten Anträge gefunden.
} else {
@foreach (var app in _applications) {
Ingenieur-Antrag
Benutzer ID: @app.UserId

Datei: @app.PdfFileName
Status: @app.Status
Datum: @(app.ApprovedOn?.ToShortDateString() ?? app.CreatedOn.ToShortDateString())

Herunterladen
}
} } else {
Sie müssen Premium Kunde sein um diese Funktion zu nutzen.
} @if (_selectedApp != null) { } @if (_reportApp != null) { } @code { public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.View; private List _applications; private EngineerApplication _selectedApp; private EngineerApplication _reportApp; private string _reportReason; protected override async Task OnInitializedAsync() { try { var published = await ApplicationService.GetApplicationsAsync(ModuleState.ModuleId, "Published"); var approved = await ApplicationService.GetApplicationsAsync(ModuleState.ModuleId, "Approved"); _applications = new List(); if (published != null) _applications.AddRange(published); if (approved != null) _applications.AddRange(approved); _applications = _applications.GroupBy(a => a.ApplicationId).Select(g => g.First()).ToList(); } catch (Exception ex) { Console.WriteLine(ex.Message); _applications = null; } } private void ShowDetail(EngineerApplication app) { _selectedApp = app; } private void InitReport(EngineerApplication app) { _reportApp = app; _reportReason = ""; } private async Task SubmitReport() { if (_reportApp == null || string.IsNullOrWhiteSpace(_reportReason)) return; try { await ApplicationService.ReportApplicationAsync(_reportApp.ApplicationId, ModuleState.ModuleId, _reportReason); _reportApp = null; AddModuleMessage("Antrag erfolgreich gemeldet.", MessageType.Success); } catch (Exception ex) { AddModuleMessage("Fehler beim Melden: " + ex.Message, MessageType.Error); } } }