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

Mitglieder Suche

@if (_searchResults != null) { @if (_searchResults.Count == 0) {

Keine Mitglieder gefunden.

} else { } } @if (_selectedUser != null) {
Nachricht an: @_selectedUser.DisplayName
@if (!string.IsNullOrEmpty(_statusMsg)) {
@_statusMsg
}
} } else {
Sie müssen Premium Kunde sein um diese Funktion zu nutzen.
} @code { public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.View; private string _query; private List _searchResults; private User _selectedUser; private string _messageBody; private string _statusMsg; private async Task Search() { if (string.IsNullOrWhiteSpace(_query) || _query.Length < 3) return; _searchResults = await ContactService.SearchUsersAsync(_query, ModuleState.ModuleId); _selectedUser = null; } private void InitContact(User user) { _selectedUser = user; _messageBody = ""; _statusMsg = ""; } private async Task Send() { if (string.IsNullOrWhiteSpace(_messageBody)) return; try { await ContactService.SendMessageAsync(_selectedUser.UserId, _messageBody, ModuleState.ModuleId); _statusMsg = "Message Sent Successully!"; // Reset after delay or allow closing await Task.Delay(2000); _selectedUser = null; StateHasChanged(); } catch (Exception ex) { _statusMsg = "Error sending message: " + ex.Message; } } }